1

こんにちは、私のjspページで、条件をテストしています

<jsp:scriptlet>

  if (session.getAttribute("empid") != null && session.getAttribute("empid") != "")
{
.......
}

しかし、私はコンパイラエラーが発生しています。

エンティティ名は、エンティティ参照の「&」の直後にある必要があります。

これを解決する方法を知っている人はいますか?

4

3 に答える 3

2

答えは、使用している JSP ページのタイプによって少し異なります。

通常の JSP ページを使用する場合は、<jsp:scriptlet>タグを<% %>すべての XML エンティティ ( &as&amp;<as など&lt;) に置き換えるか、エスケープするかを選択できます。

ただし、JSPX (JSP ドキュメントとも呼ばれます) を使用している場合は、XML エンティティをエスケープするしかありません。

于 2011-04-17T12:29:45.270 に答える
1

「Facelets は、XHTML+XML を使用して HTML 出力を生成する XML ベースのビュー テクノロジーです。XML には、XML パーサーによって特別に処理される 5 つの特殊文字があります。

< タグの開始。

タグの終わり。" 属性値の開始と終了。 ' 属性値の開始と終了の代替。 XML パーサーは、lt、gt、amp などの事前定義されたエンティティ名のいずれかを暗黙的に探しています。ただし、特定のケースでは、XML エンティティとしてではなく、JavaScript 演算子として & を使用していました。あなたが得たエラー:

エンティティ名は、エンティティ参照の「&」の直後に続く必要があります

本質的に、JS ファイルではなく XML ドキュメントという間違った場所に JavaScript コードを記述しているため、それに応じてすべての XML 特殊文字をエスケープする必要があります。& は & としてエスケープする必要があります。

したがって、あなたの特定のケースでは、

if (session.getAttribute("empid") != null && session.getAttribute("empid") は次のようになる必要があります

if (session.getAttribute("empid") != null && session.getAttribute("empid") で XML 有効にします。"

エンティティ名は、エンティティ参照の「&」の直後に続く必要があります

于 2013-09-30T14:35:24.033 に答える