Jsp 替换“\";在埃尔
在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
替换换行符(\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/>')}