【问题标题】:Custom tag attribute for iterator value迭代器值的自定义标签属性
【发布时间】:2013-03-22 02:34:48
【问题描述】:

我想要一个自定义 JSP 标记,该标记具有一个普通 bean 表达式的属性并命名一个列表。然后,标签应以特定形式呈现列表。

我尝试编写一个带有 s:iterator 属性的自定义标签,如下所示:

<%@ tag body-content="empty"%>
<%@ attribute name="list" required="true"  %>

<%@ taglib prefix="s" uri="/struts-tags"%>

<s:set var="varList" >${list}</s:set>
<s:iterator value="varList">(render item)</s:iterator>

在不同的 JSP 中,我将它与 bean 表达式一起使用:

<my:listtag list="myObject.aList"/>

我希望它会遍历“myObject.aList”,但不幸的是这不起作用。似乎发生的是,迭代器尝试迭代“myObject”而不是“myObject.aList”。

发生了什么事,我怎样才能得到我想要的行为?

非常感谢!

【问题讨论】:

    标签: jakarta-ee jsp-tags


    【解决方案1】:

    好的,我们开始吧。属性必须定义为“Collection”类型,迭代器变量必须由“%{#attr.list}”给出:

    <%@ attribute name="list" required="true" type="java.util.Collection" %>
    
    <s:iterator value="%{#attr.list}">(render item)</s:iterator>
    

    在另一个 JSP 中,我需要使用变量的 调用它,而不是变量名:

    <my:listtag list="${myObject.aList}"/>
    

    耶!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      相关资源
      最近更新 更多