0
私はので、私は有効であるために、このようなCDATAセクションでラップする必要があるのJavascriptのブロックを含めるために、(春Rooのから生成された)XHTMLを使用してJSPXファイルを持っている:JSP /サーブレットエンジンはCDATAセクションのタグを無視しますか?
<script>
<![CDATA[
new dijit.Tooltip(
{
connectId : [ "exampleId" ],
label : "<c:out value='${exampleIdTooltip}'/>",
position: "above"
});
]]>
</script>
私はトラブルをCDATAがその仕事をしており、<c:out
>が実行されていないと思います.Javascriptブロックの中にリテラルテキストとして残してあります。ファイルをXHTMLにしないように変更した場合、CDATAを削除することができ、<c:out>
が評価されます。
JSTLタグまたはELをJavascriptのブロック内にXHTMLファイルで埋め込むには、どのような方法が最適ですか?
私は< c:out >を持っていると仮定していますが、これは評価される必要があります。これはサーブレットエンジンによって評価されません。 –
正解ですが、 'if(numb <10)'(javascript)のように評価するべきではないので、スクリプト本体全体がCDATAであると言うのではなく、 'numb < 10'を使用します。しかし、 'c:out'出力はjavascript *と* htmlのためにエスケープする必要があることを覚えておいてください!あなたは、おそらく 'c:out'を直接使用するのではなく、あなたのサーブレットのものを単一のjson構造体に入れ、スクリプト内で参照するほうがよいでしょう。 –
もう1つの方法は、単に ']]><![CDATA [' c:out'タグを評価する必要がある場合はどこでもを挿入することです。これにより、前のCDATAが終了し、その後すぐに新しいCDATAが開始されます。 –
jpaugh