par*_*ath 54
这是我找到的解决方案.但它看起来并不优雅:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<% pageContext.setAttribute("newLineChar", "\n"); %>
${fn:replace(item.comments, newLineChar, "; ")}
Run Code Online (Sandbox Code Playgroud)
Bal*_*usC 19
只需使用fn:replace()功能,以取代\n由;.
${fn:replace(data, '\n', ';')}
Run Code Online (Sandbox Code Playgroud)
如果你使用Apache的EL实现而不是Oracle的EL参考实现(即当你使用Tomcat,TomEE,JBoss等而不是GlassFish,Payara,WildFly,WebSphere等)时,你需要重新逃脱反斜杠.
${fn:replace(data, '\\n', ';')}
Run Code Online (Sandbox Code Playgroud)
and*_*ndy 14
这类似于接受的答案(因为它使用Java来表示换行而不是EL)但是这里<c:set />元素用于设置属性:
<c:set var="newline" value="<%= \"\n\" %>" />
${fn:replace(myAddress, newline, "<br />")}
Run Code Online (Sandbox Code Playgroud)
下面的代码片段也可以,但是<c:set />元素的第二行不能缩进(并且可能看起来更丑):
<c:set var="newline" value="
" /><!--this line can't be indented -->
${fn:replace(myAddress, newline, "<br />")}
Run Code Online (Sandbox Code Playgroud)
此解决方案比您自己的解决方案更优雅,该解决方案直接设置pagecontext属性.你应该使用这个<c:set>标签:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<c:set var="newLine" value="\n"/>
${fn:replace(data, newLine, "; ")}
Run Code Online (Sandbox Code Playgroud)
顺便说一句:${fn:replace(data, "\n", ";")}不起作用.