s:iterator 的屬性簡介
*IneratorStatus物件介紹:
此類的物件封裝了本次循環的相關資訊,透過存取其屬性而獲得,主要屬性有:〜 㟀〜〜 〜〜 〜〜〜〜〜 〜〜〜 〜〜、〜〕集合的索引
count:已經循環的次數
first:是否為第一次循環
〜 last:是否為第一次循環
『 〜 last:是否為最後一次循環
『
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; } }
<%@ 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>