2

これ <div id="adiv"></div>はJSPXではどういうわけかに変換され<div id="adiv" />ます。私がそれを機能させる方法は、のように内部に空のコメントを追加すること<div id="adiv"><!-- --></div>です。なぜこれが起こっているのか理解できません。この問題を解決するためのより良い方法はありますか?

4

1 に答える 1

9

それはJSP仕様によるものです:

JSP.6.2.3 セマンティック モデル

...

空白の処理を明確に説明するために、XSLT 仕様の構造に従います。JSP ドキュメントを処理する最初のステップは、ドキュメントのノードを識別することです。次に、空白のみを持つすべてのテキスト ノードがドキュメントから削除されます。唯一の例外は、逐語的に保持される jsp:text 要素内のノードです。結果のノードは、次のセクションで説明するように解釈されます。テンプレート データは、応答に直接渡されるか、(標準またはカスタム) アクションを介して仲介されます。

理論的には、HTML doctype の代わりに XHTML doctype を使用してクライアント側でドキュメントを表示しても害はありません。ただし、XHTML 仕様でも、一部の要素が自己終了しないことが必要です。別の回避策は<jsp:text />、コメントの代わりに使用することです。

<div id="adiv"><jsp:text /></div>

ただし、JSP(X) は古いビュー テクノロジです。その後継のFaceletsは、この点で優れています。

以下も参照してください。

于 2012-01-13T16:47:02.610 に答える