我在JSTL中有一个变量,并希望将所有逗号替换为

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

但是,这显示了错误:

与元素类型“c:set”相关联的属性“值”的值不得包含“
我该怎么办?

最佳答案

使用&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>

10-08 13:43