- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!Struts2 generator タグ
{{include_html banner_html, "!Struts"}}
繰り返し処理可能な文字列ソースから、イテレータを生成する。
::パラメータ
,タグ名,必須,デフォルト,評価,型,内容
,count,false,,true,,イテレータに含まれる最大要素数
,separator,true,,true,,valで両されているセパレータ
,val,true,,true,,解析されるソース
,converter,false,,true,,文字列valに含まれる要素を、解析し、オブジェクトに変換するコンバータ
,id,false,,true,,page contextに格納する結果イテレータのID。
!!例
::1 単純な例
<pre>
Generate a simple iterator
<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}">
<s:iterator>
<s:property /><br/>
</s:iterator>
</s:generator>
</pre>
This generates an iterator and print it out using the iterator tag.
::2 count属性を使用した例
<pre>
Generate an iterator with count attribute
<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="3">
<s:iterator>
<s:property /><br/>
</s:iterator>
</s:generator>
</pre>
This generates an iterator, but only 3 entries will be available in the iterator
generated, namely aaa, bbb and ccc respectively because count attribute is set to 3
::3 id 属性を使用した例
<pre>
Generate an iterator with id attribute
<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="4" separator="," id="myAtt" />
<%
Iterator i = (Iterator) pageContext.getAttribute("myAtt");
while(i.hasNext()) {
String s = (String) i.next(); %>
<%=s%> <br/>
<% }
%>
</pre>
This generates an iterator and put it in the PageContext under the key as specified
by the id attribute.
::4 comparator 属性を使用した例
<pre>
Generate an iterator with comparator attribute
<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" converter="%{myConverter}">
<s:iterator>
<s:property /><br/>
</s:iterator>
</s:generator>
public class GeneratorTagAction extends ActionSupport {
....
public Converter getMyConverter() {
return new Converter() {
public Object convert(String value) throws Exception {
return "converter-"+value;
}
};
}
...
}
</pre>
This will generate an iterator with each entries decided by the converter supplied. With
this converter, it simply add "converter-" to each entries.
----
{{include_html banner_html, "!Struts"}}