<s:iterator/>迭代器标签
迭代器标签被用来迭代一个值,这个值可以是java.util.Collection或java.util.Iterator中的任何一种
<s:iterator value="集合对象" status="迭代状态实例">
<s:property value="#status.count"/>
</s:iterator>
<h3>带有IteratorStatus的迭代</h3>
<table>
<s:iterator value="comboMeals" status="comboMealsStatus">
<tr>
<s:if test="#comboMealsStatus.even == true">
<td style="background: #CCCCCC"><s:property/></td>
</s:if>
<s:elseif test="#comboMealsStatus.first == true">
<td><s:property/> (This is first value) </td>
</s:elseif>
<s:else>
<td><s:property/></td>
</s:else>
</tr>
</s:iterator>
</table>
status实例对象有几个非常有用的方法:
int getCount(): 返回目前迭代输出的元素个数
int getIndex(): 返回当前迭代元素的索引号,从0开始的序号
boolean isOdd(): 返回当前迭代元素索引号是否为奇数
boolean isEven(): 返回当前迭代元素索引号是否为偶数
boolean isFirst(): 返回当前迭代元素索引号是否为第一个元素
boolean isLast(): 返回当前迭代元素索引号是否为最后一个元素
<s:append>标签
<s:append>标签被用来将多个迭代器(由List或Map创建)组合到一个单独的迭代器中
<s:append var="customListIterator">
<s:param value="%{list1}" />
<s:param value="%{list2}" />
<s:param value="%{list3}" />
</s:append>
<s:iterator value="%{#customListIterator}" status="sta">
<s:property value="#sta.count" />
</s:iterator>
<s:generator>标签
<s:append>标签被用来将指定的字符串按指定的分隔符拆分成字符串集合,并存放在ValueStack栈顶,供迭代器标签迭代输出。如果指定id属性则将拆分后的字符串集合存放在request中。
<s:generator val="%{'java|.net|c|python|shell'}" separator="|">
<s:iterator status="st">
<s:property value="st.count" />,<s:property />
</s:iterator>
</s:generator>
<s:generator val="%{'书法,足球,音乐'}" separator="," id="mylove" count="2">
<s:iterator value="#request.mylove" status="st" id="row">
<s:property value="st.count" />,<s:property value="row"/>
</s:iterator>
</s:generator>
<s:merge>标签
<s:merge>标签的用法与<s:append>一样,也是用来合并集合,不过<s:append>是按合并的顺序依次重新排序的,而<s:merge>对于List迭代器顺序是这样的:
假设有两个迭代器,每个都有两条记录。在使用 <s:merge>标签组合到一个单独的迭代器以后,记录的顺序看上去会如下所似:
1 第一个迭代器的第一个记录;
2 第二个迭代器的第一个记录;
3 第一个迭代器的第二个记录;
4 第二个迭代器的第二个记录。
这只适用于List迭代器,对于Map迭代器,顺序则是随机的
<s:merge var="customListIterator">
<s:param value="%{list1}" />
<s:param value="%{list2}" />
<s:param value="%{list3}" />
</s:merge>
<s:iterator value="%{#customListIterator}" status="st">
<s:property value="st.count"/>
</s:iterator>
<s:subset>标签
<s:subset>标签被用来输出一个迭代器元素的子集合或一部分。使用“start”和“count”属性以及decider()方法输出迭代器(list)的子集合。
source:指定源集合,如果此属性不存在,默认从ValueStack栈顶取
count:指定截取元素个数,默认为所有元素
start:指定截取的起始位置,默认值为0
id:如果指定了该属性,则将截取到的子集合放到pageContext对象中
decider:如果指定了该属性,则使用指定筛选器对源集合每个元素进行筛选
<s:subset source="numbers" start="1" count="5">
<s:iterator>
<s:property />
</s:iterator>
</s:subset>
<s:subset source="numbers" decider="numberDecider">
<s:iterator>
<s:property />
</s:iterator>
</s:subset>
<s:sort>排序标签
<s:sort>标签被用来使用java.util.Comparator对List进行排序。
source:指定源集合,如果此属性不存在,默认从ValueStack栈顶取
comparator:必填属性,用于指定比较器,实现排序规则
id:如果指定了该属性,则将截取到的子集合放到pageContext对象中
import java.util.Comparator;
/** 自定义排序器 */
public class MyComparator implements Comparator {
//返回值大于表示第一个元素大于第二个,等于零表示相等,小于零表示小于第二个
public int compare(Object o1, Object o2){
//实现单词第一个字典顺序
String e1 = (String)e1;
String e2 = (String)e2;
return e1.charAt(0)-e2.charAt(0);
}
}
<s:bean name="com.util.MyComparator" id="myeComparator" />
<s:sort comparator="myComparator" source="{'V','Z','S','A'}">
<s:iterator status="st">
<s:property value="st.count" />, <s:property />
</s:iterator>
</s:sort>
分享到:
相关推荐
本篇文章主要关注Struts2中的常用标签,这些标签大大简化了Web开发中的一些常见任务。 首先,我们要明白Struts2标签库与Struts1.x的不同之处。在Struts1.x中,标签库按照功能划分为HTML、Tiles、Logic和Bean等几个...
### Struts2常用标签详解(实用版) #### 引言 在Java Web开发领域中,Struts2框架因其丰富的功能及灵活的配置而备受开发者们的青睐。为了更好地掌握Struts2框架并提升开发效率,本文将详细介绍Struts2中常用的...
本文将深入解析Struts2中的常用标签,这些标签在实际开发中非常实用,对于初学者理解并掌握Struts2的运行机制至关重要。 首先,我们需要了解Struts2标签库的主要组成部分,它们分为Action、Display、Logic、Field和...
根据提供的文件信息,本文将详细解析Struts2框架中遍历集合的方法,并附带介绍一些常用的Struts2标签使用技巧。 ### Struts2框架简介 Struts2是Apache基金会下的一个开源项目,它是一个用于开发Java Web应用程序的...
10. **标签的CSS和JavaScript控制**:Struts2的标签支持CSS类的设置,如`cssClass`属性,以及JavaScript事件处理,如`onchange`、`onclick`等。 以上只是Struts2.0常用标签的一小部分,实际使用中还有更多功能强大...
### Struts2页面开发中常用的标签介绍 #### 一、Struts2常用标签概述 Struts2框架在Java Web开发中被广泛应用于构建MVC架构的应用程序。它提供了丰富的标签库来简化页面开发过程,使得开发者能够更加高效地处理...
### Struts2常用标签及其应用详解 #### 一、引言 Struts2是一个基于MVC模式的开源Java Web框架,它提供了丰富的标签库来帮助开发者更高效地进行Web应用程序的开发。这些标签不仅简化了页面逻辑的编写,还提高了代码...
本篇文章将详细讲解Struts2中的常用标签,主要分为九个部分进行阐述。 一、展示数据标签 1. `<s:property>`:这个标签用于显示Action或ActionForm属性的值。例如,`<s:property value="username" />`会显示与...
### Struts2常用标签解析 #### 一、概述 Struts2是Apache组织下的一个开源框架,用于构建企业级Java Web应用。它基于MVC(Model-View-Controller)设计模式,提供了一套完整的解决方案来简化Web应用的开发流程。在...
本示例将深入探讨Struts中常用的标签及其应用。 1. **`<s:form>`** 标签: 这是Struts2中最基本的表单标签,用于创建HTML表单。它可以自动绑定到Action类的属性,提供数据验证等功能。例如: ```jsp 用户名"/>...
在Struts2中,有三个常用的标签,它们极大地简化了开发者在视图层的工作,提高了代码的可读性和可维护性。 1. `s:textfield` 标签: 这个标签用于创建HTML输入字段,通常用于用户输入数据。它与Action类中的属性相...
此标签类似于Struts1中的JavaBean引用,但在Struts2中并不常用,因为Struts2更倾向于使用Action来处理业务逻辑。 C. `<s:checkbox>`, `<s:checkboxlist>`, `<s:combobox>`, `<s:component>`: 这些标签用于创建复选...
Struts2标签库是Java开发Web应用程序时常用的一个强大工具,尤其在构建MVC(Model-View-Controller)架构的应用程序中发挥着重要作用。Struts2框架提供了丰富的自定义标签库,极大地简化了视图层的开发,使得开发者...
以下是对Struts2中一些常用标签的详细说明: 1. `<s:a>`:这是一个超链接标签,用于创建HTML的`<a>`标签。通过指定`href`属性,可以链接到指定的URL。与HTML的`<a>`标签不同,它还可以结合Struts2的Action映射,...
Struts2提供了丰富的自定义标签,如`<s:property>`用于显示对象属性,`<s:form>`用于创建表单,`<s:submit>`用于提交表单,以及`<s:iterator>`用于遍历集合。这些标签极大地简化了JSP页面的编写,提高了代码的可读性...
下面将详细介绍Struts2标签库中的部分常用标签,并将其与Struts1进行对比,以便更好地理解它们的功能。 #### 1. `<s:a>` 和 `<s:action>` - **`<s:a>`**:该标签用于创建一个超链接,类似于HTML中的`<a>`标签。与...
本篇文章将详细梳理Struts2中的一些常用标签,旨在帮助开发者更好地理解和使用这些功能。 1. **s:textfield**: 这个标签用于创建HTML输入字段,通常对应于表单中的一个属性。它自动处理了数据的校验和转换,如`...