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>
解決
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である場合にデフォルト値を割り当てるための属性もあります。
trueに等しい属性escapeXml値を使用して、Xmlエンティティのエスケープを明示的に有効にできます。参考までに、デフォルトでは「true」です。
JSPの古いバージョンは2番目の構文をサポートしていませんでした。
所属していません StackOverflow