Struts2的s:generator和s:iterator的合用
經(jīng)驗(yàn)1<select name="rooms" >
<s:generator val="1,2,3,4,5,6" separator="," id="numbers">
<s:iterator value="#numbers" id="number">
<option value='<s:property value="number"/>'><s:property value="number"/>間</option>
</s:iterator>
</s:generator>
</select>
經(jīng)驗(yàn)2<s:generator val="%{'a,b,c,d,e,f,g,h,i,j'}" count="#request.hotel.star" separator=",">
<s:iterator><img src="images/star.gif" /></s:iterator>
</s:generator>
generator標(biāo)簽,該標(biāo)簽可以將指定字符串按指定分隔符分割成多個(gè)字串。生成的多個(gè)字串可以用iterator標(biāo)簽進(jìn)行迭代輸出。可以這么理解:generator標(biāo)簽將一個(gè)字符串轉(zhuǎn)換成一個(gè)List集合。在該標(biāo)簽體內(nèi),整個(gè)臨時(shí)生成的集合將為Valuestack的頂端,但一旦該標(biāo)簽結(jié)束,生成的集合將被移除Valuestack。generator標(biāo)簽有如下幾個(gè)屬性:
1、count屬性:指定生成集合中元素的總數(shù)。可選屬性。
2、val屬性:必填屬性,指定被解析的字符串。
3、separator屬性:這是一個(gè)必填屬性,指定用于分割字符串的分隔符。
4、converter屬性:可選屬性,指定一個(gè)轉(zhuǎn)換器,轉(zhuǎn)換器負(fù)責(zé)將生成的集合中的每個(gè)字符串轉(zhuǎn)換成對(duì)象,通過(guò)這個(gè)轉(zhuǎn)換器可以將一個(gè)含有分隔符的字符串解析成對(duì)象的集合。轉(zhuǎn)換器必須一個(gè)繼承org.apache.struts2.util.IteratorGenerator.Converter的對(duì)象。
5、var屬性,可選屬性。如果指定了該屬性,則將生成的集合保存在Stack Context中。如果不指定該屬性,則將生成的集合放入ValueStack的頂端,該標(biāo)簽一結(jié)束,生成的集合就被移除。該屬性也可替換成id。
jsp實(shí)例:
- <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
- <%@taglib prefix="s" uri="/struts-tags"%>
- <head>
- <title>使用s:generator生成集合</title>
- </head>
- <body>
- <s:debug/>
- <s:generator val="'a,b, c'" separator="," id="iter1">
- </s:generator>
- 使用generator標(biāo)簽將指定字符串解析成List集合0
- <table border="1" width="240">
- <!-- 在generator標(biāo)簽內(nèi),得到的List集合位于ValueStack頂端 -->
- <s:generator val="'Struts 2權(quán)威指南,輕量級(jí)Java EE企業(yè)應(yīng)用實(shí)戰(zhàn),
- 瘋狂Ajax講義'" separator="," id="iter">
- <!-- 沒有指定迭代哪個(gè)集合,直接迭代ValueStack頂端的集合 -->
- <s:iterator status="st">
- <tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
- <td><s:property/></td>
- </tr>
- </s:iterator>
- </s:generator>
- </table>
- <BR><BR><BR><BR>
- 使用generator標(biāo)簽將指定字符串解析成List集合1
- <table border="1" width="240">
- <s:iterator status="st" value="#request.iter1" id="name">
- <tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
- <td><s:property value="name"/></td>
- </tr>
- </s:iterator>
- </table>
- <BR><BR><BR><BR>
- 使用generator標(biāo)簽將指定字符串解析成List集合2
- <table border="1" width="240">
- <s:iterator status="st" value="#iter1" id="name">
- <tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
- <td><s:property value="name"/></td>
- </tr>
- </s:iterator>
- </table>
- <s:property value="#attr"/>
- <BR>
- <s:property value="#iter"/>
- <BR><BR><BR>
- <a href="s-generator-count.jsp" mce_href="s-generator-count.jsp">s-generator-count.jsp</a>
- </body>
- </html>
posted on 2011-12-08 10:20 計(jì)明敏 閱讀(995) 評(píng)論(0) 編輯 收藏 所屬分類: struts