我有这个代码实际上有效:
<s:iterator value="breadcrumb.links" var="link">
<s:url action='%{#link.url}' var="url" />
<li>
<a href="${url}">${link.name}</a>
</li>
</s:iterator>
Run Code Online (Sandbox Code Playgroud)
我怎么做同样的事情,但用c:foreach而不是s:iterator?
我尝试过:
<c:forEach items="${breadcrumb.links}" var="link">
<s:url action='${link.url}' var="url" />
<li>
<a href="${url}">${link.name}</a>
</li>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
根据标记文件中的TLD或属性指令,属性操作不接受任何表达式
谢谢.
我最近需要处理javascript.不幸的是,我是新手.
我遇到了以下代码,并不理解$ {count == 0}的含义.
function body_onload()
{
if(${count == 0})
{
document.getElementById("dispaly").style.display="none";
}
scanImageReportFrom.shopCodes.focus();
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
最后我发现这可以解决我的问题.
如http://www.disasterarea.co.uk/blog/xss-vulnerabilities-in-web-frameworks-2/中所述
在struts 2中$ {}不是xss安全的,而在tapestry 5中是安全的.
我不是Tapestry的人,但我想知道上面是否正确.
据我所知,它${}是JSLT的一部分,它不依赖于任何Web框架.因此,如果上面的句子是正确的并且${}在挂毯中是安全的XSS,我们怎样才能在struts 2中使其安全.
更新:
为了测试它我运行struts2-showcase应用程序,打开modelDriven\modelDrivenResult.jsp并添加以下行:
Am I safe ${name}
Run Code Online (Sandbox Code Playgroud)
现在,当您运行展示案例并输入<script> alert('xxxx') </script>gangester名称时,您可以看到警报!