我在JSTL中有一个变量,并希望将所有逗号替换为
<c:set var="colTxt" value="${fn:replace(colTxt,',','<br />')}" />
但是,这显示了错误:
与元素类型“c:set”相关联的属性“值”的值不得包含“
我该怎么办?
最佳答案
使用<
和>
代替<
和>
。
使用<c:out>
打印它时,请确保添加escapeXml="false"
,否则您会看到<br />
字面显示为原样而不是被解析为真实的HTML换行符。
但是,当${colTxt}
包含用户控制的输入时,则禁用XML转义可能会创建XSS漏洞。您可能想以其他方式解决问题,例如
<c:forEach items="${fn:split(colTxt, ',')}" var="item">
<c:out value="${item}" /><br />
</c:forEach>