s: Iterator 属性の紹介
*IneratorStatus オブジェクトの紹介:
このタイプのオブジェクトは、その属性にアクセスすることで取得される、このサイクルの関連情報をカプセル化します。 主な属性は次のとおりです:
インデックス: 現在のループ。 to Index of the collection
Count: 循環された回数
First: 最初の周期かどうか
Last: 最後の周期かどうか
odd: 現在位置が奇数かどうか
偶数: 現在の位置が偶数かどうか
例:
新しいクラス 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 を使用しています。異なるバージョンの設定ファイルは異なります。
次の 1 つを実行します。