質問

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

<p>The person's name is <c:out value="${person.name}" /></p>
<p>The person's name is ${person.name}</p>
役に立ちましたか?

解決

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

if person.name =&lt; script&gt; alert(&quot; Yo&quot;)&lt; / script&gt;

スクリプトは2番目のケースで実行されますが、 c:out

を使用する場合は実行されません

他のヒント

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

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

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

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

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

出典: out(TLDDoc生成ドキュメント)

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top