Sim*_*nti 4 jsp iterator jstl struts2 ognl
我有这个代码实际上有效:
<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或属性指令,属性操作不接受任何表达式
谢谢.
为了更好地使用Struts2标签和OGNL语言,请阅读并为此答案添加书签.
由于Struts2标记仅评估OGNL表达式(而不是EL表达式,因为您明确指出错误),您需要通过使用以下#attr.something
指定的PageContext属性(在OGNL中)访问JSTL对象var
:
<c:forEach items="${breadcrumb.links}" var="link">
<s:url action='%{#attr.link.url}' var="url" />
<li>
<a href="${url}">${link.name}</a>
</li>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
来自OGNL基础知识:
#attr['foo']
或#attr.foo
:访问(PageContext
如果可用),否则分别搜索request
/session
/application
归档时间: |
|
查看次数: |
5211 次 |
最近记录: |