web-dev-qa-db-ja.com

JSP:JSTL <c:out>タグ

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

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

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

person.name = <script>alert("Yo")</script>の場合

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

149
krosenvold

Will Wagnerが言ったように、jspの古いバージョンでは、c:outを使用してダイナミックテキストを出力する必要があります。

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

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

名前がnullの場合、「名前なし」というテキストを表示できます。

123
alexmeia

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

ソース: out(TLDDoc Generated Documentation)

5
Chris Serra

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

5
Greenhorn

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

4
Will Wagner