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

我在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>
上一篇:uva--1339 - Ancient Cipher(模拟水体系列)


下一篇:如何在jstl fmt标签中传递JavaScript变量?