首页 > 代码库 > s:iterator 用法及实例
s:iterator 用法及实例
属性名 | 是否必须 | 默认值 | 类型 | 说明 |
status | false | false | String | 默认不指定此属性,如果指定,则会创建一个IteratorStatus类的对象,此对象名即为此属性的值,下文会详细介绍 |
value | false | String | 被循环的集合,包括Map、List、set、数组 | |
var | false | String | 集合中的每个元素,放到值栈中,通过此访问遍历的集合中的元素, | |
begin | false | 0 | int | 开始遍历的索引 |
end | 类似begin |
*IneratorStatus对象介绍:
此类的对象封装了本次循环的相关信息,通过访问其属性获得,主要属性有:
index:当前循环到的集合的索引
count:已经循环的次数
first:是否为第一次循环
last:是否为最后一次循环
odd:当前位置是否为奇数
even:当前位置是否为偶数
eg:
新建类Action1.java,代码如下:
package my.test;import com.opensymphony.xwork2.ActionSupport;public class Action1 extends ActionSupport{ private String[] arr=new String[5]; //一定要添加get/set方法,否则会出现空指针异常 public String[] getArr() { return arr; } public void setArr(String[] arr) { this.arr = arr; } public String execute(){ int i=101; //下面的for循环的赋值不起作用 for(String a:arr){ a=""+i++; } arr[3]="this is 3";//这里验证上面的for循环对arr的赋值是不起作用的,这里由String数组和String的特性来决定,看运行结果即可 return SUCCESS; }}
新建jsp文件/iterator.jsp,记得引入Struts的标签
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body> <s:debug></s:debug> <s:iterator var="one" value="arr" begin="2" status="sta"> <!-- 由于循环到的值保存到值栈中,所以下面通过s:property标签取值 --> 循环到的值为:<s:property value="one"/><br> 循环的次数为:<s:property value="#sta.count"/><br> 循环的索引为:<s:property value="#sta.index"/><br> 是否为奇数:<s:property value="#sta.odd"/><hr> </s:iterator></body></html>
最后配置文件来一个:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"><struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> <package name="test" namespace="/" extends="struts-default"> <action name="iterator" class="my.test.Action1"> <result>/iterator.jsp</result> </action> <action name="index"> <result type="redirectAction"> <param name="actionName">HelloWorld</param> <param name="namespace">/example</param> </result> </action> </package> <!-- Add packages here --></struts>
笔者用的是Struts2 2.3.30版本,不同版本的配置文件是不一样滴
运行一个:
上面的Debug如有疑问,自行百度~
s:iterator 用法及实例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。