作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我使用下面的 jSTL 代码时
<a href="http://mysite.com?id="<c:out value="${myid}"/>/><c:out value="${myid}"/></a>
最佳答案
最终,JSP/JSTL 生成 HTML。您熟悉的basic HTML , 对?
通过右键单击,在浏览器中查看源代码,仔细查看生成的 HTML 输出。你会看到的:
<a href="http://mysite.com?id="1234/>1234</a>
"
过早地关闭了属性值在错误的地方,你用
/>
过早地关闭了标签.看,Stack Overflow HTML 语法荧光笔也被搞糊涂了。相反,它应该是:
<a href="http://mysite.com?id=1234">1234</a>
<a href="http://mysite.com?id=<c:out value="${myid}"/>"><c:out value="${myid}"/></a>
<c:out>
仅有助于预防
XSS attack holes当重新显示用户控制的输入时,实际上是错误的内联 URL 参数的工具。如果你能保证
${myid}
始终是一个数字(因为它是
Long
或
Integer
),您甚至可以完全不使用它,使代码更易于阅读:
<a href="http://mysite.com?id=${myid}">${myid}</a>
${myid}
然而,不能保证是一个数字(因为它是一个
String
),那么你应该使用
<c:url>
和
<c:param>
正确
URL-encode它:
<c:url value="http://mysite.com" var="myURL">
<c:param name="id" value="${myid}" />
</c:url>
<a href="${myURL}"><c:out value="${myid}" /></a>
关于jSTL - 如何在jSTL代码中混合href,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18084905/
我是一名优秀的程序员,十分优秀!