如何使用 Struts 嵌套标记库从 HashSet 字段属性中获取项目?

Posted

技术标签:

【中文标题】如何使用 Struts 嵌套标记库从 HashSet 字段属性中获取项目?【英文标题】:How to fetch item from HashSet field property using Struts nested taglibs? 【发布时间】:2018-08-15 15:20:47 【问题描述】:

我正在尝试使用 Struts 嵌套标记遍历 ArrayListSet 集合对象。我附上了我的代码的 sn-p。

<snested:iterate property="productsList" id="aProduct">
   <snested:iterate property="participantList" id="participant_item">
       ......
     <snested:text property="firstName" styleClass="text"/>
  </snested:iterate>
</snested:iterate>

这里participantListSetproductsListList。 在上面的代码中,我收到以下错误:

Invalid argument looking up property: "productsList[0].participantList[0].firstName" of bean: "orderedProducts"
at org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:887
at org.apache.struts.taglib.html.BaseFieldTag.prepareValue(BaseFieldTag.java:126)

但如果我使用 List 而不是 Set 集合,它工作正常。

【问题讨论】:

对象类型是什么? ArrayList productsList;并且类 Product 有一个名为 Set 参与者列表的属性,而 firstName 是 ParticipantInfo 类的属性 【参考方案1】:

HashSet 类不是索引集合。您不能将此类与 Struts 嵌套标记一起使用。

如果要求使用Set而不是List是强制性的,那么您应该更改使用此标签的标签或标签库或使用另一个标签库,即JSTL等。

【讨论】:

有没有办法使用struts嵌套的taglib迭代LinkedHashSet? 否,但您可以尝试this 解决方案。

以上是关于如何使用 Struts 嵌套标记库从 HashSet 字段属性中获取项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 freemarker 设置 struts 参数标记的值

如何禁用标签 Struts2中的标记

1.谁能简述下Struts中的标记库 要详解 !!!!

如何在 struts2 文本字段标签中放置占位符?

如何访问嵌套 JSP 标记文件中的父属性?

如何正确转义 JSP 标记中的三重嵌套引号