当前位置:  开发笔记 > 编程语言 > 正文

如何使用JSP和JSTL替换换行符?

如何解决《如何使用JSP和JSTL替换换行符?》经验,为你挑选了4个好方法。

我有一个传递到我的JSP页面的bean对象列表,其中一个是注释字段.此字段可能包含换行符,我想使用JSTL用分号替换它们,以便可以在文本输入中显示该字段.我找到了一个解决方案,但它不是很优雅.我将在下面发布一个可能性.



1> parkerfath..:

这是我找到的解决方案.但它看起来并不优雅:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<% pageContext.setAttribute("newLineChar", "\n"); %>

${fn:replace(item.comments, newLineChar, "; ")}


我试图逃避反斜杠,这也没有用.我上面列出的设置pageContext属性的方法仍然是我可以使它工作的唯一方法.虽然正如BalusC所说,你可能会对一些更简单的方法有更好的运气.在这里拥有所有选项可能很好.

2> BalusC..:

只需使用fn:replace()功能,以取代\n;.

${fn:replace(data, '\n', ';')}

如果你使用Apache的EL实现而不是Oracle的EL参考实现(即当你使用Tomcat,TomEE,JBoss等而不是GlassFish,Payara,WildFly,WebSphere等)时,你需要重新逃脱反斜杠.

${fn:replace(data, '\\n', ';')}



3> andy..:

这类似于接受的答案(因为它使用Java来表示换行而不是EL)但是这里元素用于设置属性:

" />
${fn:replace(myAddress, newline, "
")}

下面的代码片段也可以,但是元素的第二行不能缩进(并且可能看起来更丑):

    
    ${fn:replace(myAddress, newline, "
")}



4> bousch..:

此解决方案比您自己的解决方案更优雅,该解决方案直接设置pagecontext属性.你应该使用这个标签:

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


${fn:replace(data, newLine, "; ")}

顺便说一句:${fn:replace(data, "\n", ";")}不起作用.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有