首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用JSP和JSTL替换换行符?

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

Stack Overflow用户
提问于 2008-09-12 00:57:12
回答 13查看 101.9K关注 0票数 45

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

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2008-09-12 00:59:31

这是我找到的一个解决方案。不过,它看起来并不是很优雅:

代码语言:javascript
运行
复制
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<% pageContext.setAttribute("newLineChar", "\n"); %>

${fn:replace(item.comments, newLineChar, "; ")}
票数 55
EN

Stack Overflow用户

发布于 2009-11-07 06:31:08

只需使用fn:replace()函数将\n替换为;即可。

代码语言:javascript
运行
复制
${fn:replace(data, '\n', ';')}

如果你使用的是Apache的EL实现而不是Oracle的EL参考实现(例如,当你使用Tomcat、TomEE、JBoss等而不是GlassFish、Payara、WildFly、WebSphere等),那么你需要重新转义反斜杠。

代码语言:javascript
运行
复制
${fn:replace(data, '\\n', ';')}
票数 19
EN

Stack Overflow用户

发布于 2011-08-20 00:15:19

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

代码语言:javascript
运行
复制
<c:set var="newline" value="<%= \"\n\" %>" />
${fn:replace(myAddress, newline, "<br />")}

以下代码片段也有效,但元素的第二行不能缩进(可能看起来更难看):

代码语言:javascript
运行
复制
    <c:set var="newline" value="
" /><!--this line can't be indented -->
    ${fn:replace(myAddress, newline, "<br />")}
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档