java - JSTL 用 HTML 标签替换变量中的字符

标签 java jstl

我在 JSTL 中有一个变量,想用
替换所有逗号

<c:set var="colTxt" value="${fn:replace(colTxt,',','<br />')}" />

然而,这显示了错误:

The value of attribute 'value' associated with an element type "c:set" must not contain the '<' character

我该怎么办?

最佳答案

使用 &lt;&gt;而不是 <> .

使用 <c:out> 打印时,然后确保添加 escapeXml="false" ,否则你会看到 <br />字面上按原样显示,而不是被解析为真正的 HTML 换行符。

然而,当${colTxt}包含用户控制的输入,那么禁用 XML 转义可能会潜在地创建 XSS 漏洞。您可能想以不同的方式解决问题,例如

<c:forEach items="${fn:split(colTxt, ',')}" var="item">
    <c:out value="${item}" /><br />
</c:forEach>

关于java - JSTL 用 HTML 标签替换变量中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7014899/

相关文章:

java - Controller 用整个 View 响应 AJAX 请求

java - 无法将 '0000-00-00 00:00:00' 转换为 TIMESTAMP

java - 使用 "JSF"或 JSTL 标签迭代 java.util.Map 时出现问题

java - 从 JSTL 标记调用自定义 JSP 标记

jsp - 无法使用 JSTL 访问 map 内部的 map

java - Gson异常——de-gson复杂对象

java - Java 中使用 ArrayList 的异常处理

java - 如何在 Heroku 上运行 Spring MVC 应用程序?

Java EL对象 `${pools}`

java - 如何在JSTL中使用AOP?