117

JSP ページを作成すると、正確には何を行うの<c:out>でしょうか? 次の両方が同じ結果になることに気付きました。

<p>The person's name is <c:out value="${person.name}" /></p>
<p>The person's name is ${person.name}</p>
4

5 に答える 5

157

c:outクロスサイト スクリプティングを回避できるように、HTML 文字をエスケープします。

もしもperson.name = <script>alert("Yo")</script>

スクリプトは2番目のケースで実行されますが、使用する場合は実行されませんc:out

于 2008-11-14T19:05:04.957 に答える
128

Will Wagner が言ったように、古いバージョンの jsp では、c:out動的テキストを出力するために常に使用する必要があります。

さらに、次の構文を使用します。

<c:out value="${person.name}">No name</c:out>

name が null の場合、「No name」というテキストを表示できます。

于 2008-11-14T19:34:25.617 に答える
5

c:outperson.nameの値がたまたまnullの場合に、デフォルト値を割り当てるための属性もあります。

出典:out(TLDDocで生成されたドキュメント)

于 2008-11-14T19:21:02.443 に答える
5

true に等しい属性 escapeXml 値を使用して、Xml エンティティのエスケープを明示的に有効にすることができます。参考までに、デフォルトでは「true」です。

于 2009-07-02T16:57:15.763 に答える
4

古いバージョンの JSP は、2 番目の構文をサポートしていませんでした。

于 2008-11-14T19:03:42.730 に答える