在元素属性中嵌套 c:out JSTL 标记是一种好的做法,还是通常首选使用 c:out 的 var 属性?它似乎以任何一种方式工作,但我怀疑嵌套它在某些应用程序服务器或 JSP 版本中可能不起作用(而且它看起来错误)。
例如,一个输入元素在验证失败时恢复其值,并使用特殊字符转义:
<input type="text" name="firstname" value="<c:out value="${param.firstname}"/>"/>
对比:
<c:out value="${param.firstname}" var="firstname"/>
<input type="text" name="firstname" value="${firstname}"/>
最佳答案
通过嵌套 <c:out>
在不干扰格式良好的 XML 语法的情况下防止 HTML 元素属性中的 XSS 攻击的常见做法标签正在使用 fn:escapeXml()
代替函数:
<input type="text" name="firstname" value="${fn:escapeXml(param.firstname)}"/>
关于java - c :out nested inside element attribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7771949/