java - c :out nested inside element attribute

标签 java jsp jstl

在元素属性中嵌套 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/

相关文章:

java - 查看映射是否包含空键的独立实现方式

spring-mvc - 在 Spring 中循环 JSTL 表单标签内的列表

java - final 方法中的早期绑定(bind)

javascript - Javascript 中的超链接没有响应

java - Tomcat:War文件部署在本地但不在在线服务器上

javascript - document.getElementById ('email' + (2)).innerText 在 Firefox 中不起作用

java - 在构建 JSTL 经典 Select 标签后,我应该将 null 设置为大项吗

java - JSTL中的if语句

java - 自动包含另一个maven项目的子模块

java 使用带有数组的方法