結論
- brタグを使用できるのは、rawWriteタグ。
- writeタグは、デフォルトではbrタグを使用できない。
- 一方、自動エスケープされるので、安全性が高いメリットがある。
- rawWriteタグはセキュリティリスクに注意する必要がある。
- 外部から入力可能な値にrawWriteタグを使用するのはご法度。
前提:Nablarchのカスタムタグについて
コードサンプル
nablarch-example-webでテストする。実行方法はREADMEを参照。
/**
* ログイン画面を表示。
*
* @param request HTTPリクエスト
* @param context 実行コンテキスト
* @return HTTPレスポンス
*/
public HttpResponse index(HttpRequest request, ExecutionContext context) {
context.setRequestScopedVar("brtag", "こんにちは。<br>これは、<br />改行をテストします。これは改行しない(_br_)<br>");
return new HttpResponse("/WEB-INF/view/login/index.jsp");
}
<body>
<div class="mainContents">
<n:include path="/WEB-INF/view/common/header.jsp" />
<div class="title-nav">
<span>ログイン</span>
</div>
<div class="font-group">
<!-- name属性を指定してオブジェクトのpersonNameプロパティにアクセスする。 -->
改行あり<n:rawWrite name="brtag" />
改行なし<n:write name="brtag" />
</div>
</div>
</ body>
どうなるのか
- rawWriteタグは、
<br />
と<br>
いずれも利用できる。 - writeタグは、タグがエスケープされる。
参考文献
JSPカスタムタグ
rawWriteタグ
writeタグ