我在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>