java - Struts2 - append标签生成的结果不能迭代多次

标签 java jsp struts2

代码片段如下:

<s:set value="{1,2,3}" var="list1" />
<s:set value="{4,5,6}" var="list2" />
<s:append var="list3">
    <s:param value="#list1" />
    <s:param value="#list2" />
</s:append> 
<s:iterator value="#list3">
    <s:property />
</s:iterator>
<hr />
<s:iterator value="#list3">
    <s:property />
</s:iterator>
<hr />

结果如下:

1 2 3 4 5 6
---------------------------------------------------------------------
---------------------------------------------------------------------

第二个<s:iterator>标签根本不起作用,#list3 怎么了? , 是 #list3现在是一个空列表?

最佳答案

你的 #list3不是列表,它是对附加迭代器的引用(AppendIteratorFilter 的实例)。这是如何<s:append>标签有效。它将在迭代后删除可迭代源。您可以调用hasNext()附加迭代器上的方法以查看它是否包含更多元素。和 next()获取下一个元素的方法。

<s:iterator value="#list3">
    <s:property />
    <s:property value="#list3.hasNext()"/>
</s:iterator>

关于java - Struts2 - append标签生成的结果不能迭代多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26835324/

相关文章:

java - Struts2 复选框保存到其他 bean

java - struts2中的freemarker配置

java - 不使用方法参数的接口(interface)实现

java - html <form> 标签引用 "super"表单标签 - 可能吗?

java - 从 spring Controller 类中的 jsp 检索多个复选框值

javascript - 让javascript取消jsp页面中的提交

spring - Struts2 和 Hibernate - 在 Servlet 外部访问 ActionContext.getContext().getSession()

java - 如何检查 Thymeleaf 片段是否已定义

java.util.Date 到 java.sql.Date 不包含时间

java - 非二叉树中特定级别的子节点数