JSTL函数用于替换字符串中的引用字符?

Dim*_*ims 10 string replace jstl el

用"字符串值内的序列"替换引号字符的最简单方法是什么?

Bal*_*usC 15

这将是fn:replace()功能.

<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
${fn:replace(foo, '"', '\\"')}
Run Code Online (Sandbox Code Playgroud)

具体问题无关,这是一个经常反复出现的要求,以便在将用户控制的输入重新显示为HTML属性时防止格式错误的HTML.通常,你应该使用<c:out>fn:escapeXml()替代它.例如

<input name="foo" value="<c:out value="${param.foo}" />" />
<input name="foo" value="${fn:escapeXml(param.foo)}" />
Run Code Online (Sandbox Code Playgroud)

它不仅需要引号考虑,也是所有其他的XML特殊字符,如<,>,&,等.

也可以看看: