JSTL/改行しつつエスケープする

関連

  • Java
  • JSP
  • JSTL

概要

c:outでエスケープさせたいが改行は
で表示させたい。

方法

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

<c:forEach var="str" items="${fn:split(text,'
')}" ><c:out value="${str}" /><br></c:forEach>

ただし、textでリクエスト属性に改行を含む文字列を保存している場合。

解説

fn:splitでsplitができるわけですがどういうわけか\nではエラーになります。苦肉の策で該当箇所に改行を書いてしまいます。

参考

  • http://tech.g.hatena.ne.jp/koseki/20050706/jstlreturnreplace
作成日 2013-08-17