Struts2의 s:iterator는 데이터 스택의 모든 배열, 컬렉션 등을 탐색할 수 있습니다. 다음은 몇 가지 간단한 데모입니다.
s:iterator 태그에는 3가지 속성이 있습니다.
값: 반복되는 컬렉션
id : 컬렉션에 있는 요소의 ID를 지정합니다.
status 반복되는 요소의 인덱스
1: jsp 페이지 정의 요소 쓰기 배열 또는 목록
Html 코드
<s:iterator value="{'1','2','3','4','5'}" id='number'> <s:property value='number'/>A </s:iterator>
인쇄 결과: 1A2A3A4A5A
2: 인덱스 사용
상태가 지정되면 각 반복 데이터에는 다음 메소드를 포함하는 IteratorStatus의 인스턴스가 있습니다.
int getCount()는 현재 반복되는 요소 수를 반환합니다.
int getIndex () 현재 요소 인덱스를 반환합니다
boolean isEven() 현재 요소 인덱스가 짝수인지 여부
boolean isFirst () 현재 요소가 첫 번째 요소인지 여부
boolean isLast ()
boolean isOdd () 현재 요소 인덱스가 홀수인지 여부
HTML 코드
<s:iterator value="{'a','b','c'}" id='char' status='st'> <s:if test="#st.Even"> 现在的索引是奇数为:<s:property value='#st.index'/> </s:if> 当前元素值:<s:property value='char'/> </s:iterator>
3: 트래버스 지도
값 다음과 같이 직접 정의할 수 있습니다.
value="#{"1":"a","2":"b"}"
각 요소는 로 구분됩니다. 요소 사이의 키와 값은 콜론으로 구분됩니다.
값은 데이터 스택의 java.util.Map 객체일 수도 있습니다.
순회는 다음과 같이 작성됩니다.
Html 코드
<s:iterator value="map" id="id" status="st"> key : <s:property value='key'/> value:<s:property vlaue='value'/> </s:iterator>
물론 키와 값 모두 Java의 객체일 수 있습니다
3: 데이터 스택. 단순 목록 클래스:
목록<속성>
Java 코드
class Attr{ String attrName; String getAttrName(){ return "123"; } }
Html 코드
<s:iterator value="label" id="id"> <s:property value="#id.attrName" /> </s:iterator>
물론 value는 value="%{label}"로 쓸 수도 있고, label은
label의 속성 List를 조작하려면 value="%로 쓸 수도 있습니다. {label.list}", 이는 getLabel().getList ();
4: Traverse 2 목록:
Js 코드
List<AttrName> attrN {color,size,style} List<AttrValue> attrV {red,20,gay}
이 두 목록의 요소는 일대일 대응이며 하나의 attrN은 하나의 attrV에 해당합니다
Html 코드
<s:iterator value="%{attrN }" id="id" status="status"> index is : <s:property value='status.index'/> attrName is : <s:property value='id'/> or <s:property value='%{id}'/> attrName is : <s:property value='%{attrV[#status.index]}'/> </s:iterator>