Jsp 替换“\";在埃尔

Jsp 替换“\";在埃尔,jsp,el,Jsp,El,在JSP文件中,我想用替换换行符(\n)。我试过了 ${fn:replace(someString, '\n', '<br />')} ${fn:replace(someString,'\n','')} 但我收到一个错误,“\n”ecnountered,正在驱逐其中一个… 我猜这意味着解析器不喜欢这样的东西 可以用EL做这样的事情吗?你的方法简单多了。我怎么没想到呢。这是一个演示页面 <%@taglib uri="http://java.sun.com/jsp/jstl/c

在JSP文件中,我想用

替换换行符(
\n
)。我试过了

${fn:replace(someString, '\n', '<br />')}
${fn:replace(someString,'\n','
')}
但我收到一个错误,“\n”ecnountered,正在驱逐其中一个…

我猜这意味着解析器不喜欢这样的东西


可以用EL做这样的事情吗?

你的方法简单多了。我怎么没想到呢。这是一个演示页面

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<c:set var="newLine" value="\n" />
<c:set var="myText" value="one\ntwo\nthree" />
${fn:replace(myText, newLine, '<br/>')}

${fn:replace(myText,换行符,
)}
为此创建EL函数

首先创建执行所需作业的静态方法:

package com.example;

public final class Functions {
     private Functions() {}

     public static String nl2br(String string) {
         return (string != null) ? string.replace("\n", "<br/>") : null;
     }
}
最后按如下方式使用:

<%@taglib uri="http://example.com/functions" prefix="f" %>
...
${f:nl2br(someString)}

...
${f:nl2br(someString)}
另见:

对我来说,首先定义一个变量
换行符
,或者

<% pageContext.setAttribute("newLine", "\n"); %>


然后

${fn:replace(someString, newLine, '<br/>')}
${fn:replace(someString,换行符,
)}
谢谢您的解决方案,但这并不好,它需要在打印前对其进行URL解码,否则它将打印%XX而不是空格、重音字母等。找到解决方案
${fn:replace(someString,newLine,
')}
抱歉,请查看我编辑的演示。我尝试与一起使用,但不起作用。假设我需要使用@Doni:只需按“提问”并发布一个SSCCE,我已经使用了escapeXml=false,否则它会打印到屏幕上,
…示例:@user3410465:根本不用
。只需执行
${f:nl2br(someString)}
。这在JSP1.x中是不受支持的,但是随着JSP2.0在十多年前发布,没有人会期望现在JSP1.x上还会有一个。
<c:set var="newLine" value="<%= '\n' %>" />
${fn:replace(someString, newLine, '<br/>')}