struts2之标签库使用--iterator(2)

iterator标签主要用于对集合进行迭代,实现数据输出,这里的集合主要包括List,Set和数组,同时也对Map进行迭代。

iterator有三个属性:

value:可选属性,指定被迭代的集合。

id:可选属性,该属性指定了集合里元素的id,没多大用。

status:可选,迭代集合时的索引。

1.基本用法,通过id,迭代输出

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!-- 引入struts标签库 -->
<%@taglib uri="/struts-tags" prefix="s"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <%-- <base href="<%=basePath%>"> --%>
    <title>struts2标签</title>
  </head>
  <body>
  	<!-- value被迭代的集合,id指定集合里元素的id,根据id拿到对应的值,显示页面 -->
  	<s:iterator value="{'one','two','three'}" id="number">
  		<!-- 用不用#号都代表用id拿集合元素的值,都行 -->
  		<s:property value="#number"/>
  		<%-- <s:property value="number"/> --%>
  	</s:iterator>
  </body>
</html>
2.status的使用,索引用法

如果使用了status属性,每次迭代时都会有一个实例,IteratorStatus类.

该类包括以下几个方法:

int getCount():返回当前迭代了几个元素。

int getIndex():返回当前迭代元素的索引。

boolean isEvent():返回当前迭代元素的索引是否是偶数。

boolean isFirst():返回当前迭代的元素是否是第一个元素。

boolean isLast():返回当前迭代的元素是否是第一个元素。

boolean isOdd():返回当前迭代的元素是否是奇数。

实例使用:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!-- 引入struts标签库 -->
<%@taglib uri="/struts-tags" prefix="s"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <%-- <base href="<%=basePath%>"> --%>
    <title>struts2标签</title>
  </head>
  <body>
  	<!-- iterator的status属性使用实例 -->
  	<s:iterator value="{'a','b','c'}" id="myArr" status="st">
        <s:if test="#st.Even">注:索引下标从0开始<br>
		            奇数索引是:<s:property value="#st.index"/><br>
		            对应的元素值:<s:property value="#myArr"/><br>
		            循环到当前元素时循环了几次:<s:property value="#st.getCount()"/><br>
		            当前元素对应的索引:<s:property value="#st.getIndex()"/><br>
		            当前元素对应的在数组中的位置是否是偶数:<s:property value="#st.isEven()"/><br>
		            当前元素对应的在数组中的位置是否是奇数:<s:property value="#st.isOdd()"/><br>
		            当前元素在数组中是否是第一个元素:<s:property value="#st.isFirst()"/><br>
		            当前元素在数组中是否是最后一个元素:<s:property value="#st.isLast()"/>
        </s:if>
 	</s:iterator>
  </body>
</html>


结果:

奇数索引是:1
对应的元素值:b
循环到当前元素时循环了几次:2
当前元素对应的索引:1
当前元素对应的在数组中的位置是否是偶数:true
当前元素对应的在数组中的位置是否是奇数:false
当前元素在数组中是否是第一个元素:false
当前元素在数组中是否是最后一个元素:false

注:索引下标从0开始

3.map迭代实例
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!-- 引入struts标签库 -->
<%@taglib uri="/struts-tags" prefix="s"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <%-- <base href="<%=basePath%>"> --%>
    <title>struts2标签</title>
  </head>
  <body>
  	<!-- iterator的status属性使用实例 -->
  	<s:iterator value="#{'one':'第一名','two':'第二名','three':'第三名'}" status="st">
  		key:<s:property value="key"/>
  		value:<s:property value="value"/><br>
 	</s:iterator>
  </body>
</html>

运行结果:

key:one value:第一名
key:two value:第二名
key:three value:第三名


你可能感兴趣的:(struts2,status,id,iterator,value)