当前位置 : 主页 > 编程语言 > java >

jsp – 如何在Struts2中使用JSTL?

来源:互联网 收集:自由互联 发布时间:2021-06-25
我有这个代码实际上有效: s:iterator value="breadcrumb.links" var="link" s:url action='%{#link.url}' var="url" / li a href="${url}"${link.name}/a /li/s:iterator 我怎么做同样的事情,但用c:foreach而不是s:iterator?
我有这个代码实际上有效:

<s:iterator value="breadcrumb.links" var="link">
    <s:url action='%{#link.url}' var="url" />
    <li>
       <a href="${url}">${link.name}</a>
    </li>
</s:iterator>

我怎么做同样的事情,但用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>

但我得到错误:

According to TLD or attribute directive in tag file, attribute action does not accept any expressions

谢谢.

为了更好地使用Struts2标签和OGNL语言, read and bookmark this answer.

由于Struts2标记仅评估OGNL表达式(and not EL Expression,因为您错误明确指出),您需要通过使用var指定的PageContext属性(在OGNL#attr.something中)访问JSTL对象:

<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>

从OGNL Basics:

#attr['foo'] or #attr.foo
: Access to PageContext if available, otherwise searches
request/session/application respectively

网友评论