我在 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
我该怎么办?
最佳答案
使用 <
和 >
而不是 <
和 >
.
使用 <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/