sort
標簽使用介紹
技術(shù)要點
本節(jié)代碼具體介紹 sort 控制標簽的使用方式介紹。
sort 標簽使用。
sort 標簽功能演示。
演示代碼
標簽使用 JSP 文件:
?
?
- <!------------------文件名:sortTag.jsp----------------> ??
- ?????????<body> ??
- ???????????????????<h3?align= "left" > ??
- ????????????????????????????sort標簽使用范例 ??
- ???????????????????</h3> ??
- ???????????????????<s:set?name= "frank" ?value= "{'歐龍無苯油漆(六度)','進戶門套油漆','踢腳線','奧普浴霸'}" ?/> ??
- ???????????????????<s:sort?source= "frank" ?comparator= "sort" > ??
- ????????????????????????????<s:iterator> ??
- ?????????????????????????????????????<tr> ??
- ???????????????????????????????????????????????<td> ??
- ????????????????????????????????????????????????????????<p> ??
- ?????????????????????????????????????????????????????????????????<s:property?/> ??
- ????????????????????????????????????????????????????????</p> ??
- ???????????????????????????????????????????????</td> ??
- ?????????????????????????????????????</tr> ??
- ????????????????????????????</s:iterator> ??
- ???????????????????</s:sort> ??
- ?????????</body>??
<!------------------文件名:sortTag.jsp----------------> <body> <h3 align="left"> sort標簽使用范例 </h3> <s:set name="frank" value="{'歐龍無苯油漆(六度)','進戶門套油漆','踢腳線','奧普浴霸'}" /> <s:sort source="frank" comparator="sort"> <s:iterator> <tr> <td> <p> <s:property /> </p> </td> </tr> </s:iterator> </s:sort> </body>
?
?
定義的分類條件代碼:
?
?
- <!---------------文件名:SortAction.java--------------> ??
- ??
- public ? class ?SortAction? extends ?ActionSupport?{ ??
- ????????? //新建內(nèi)部類comparator,定義分類條件:按照字符串長度從短到長排列 ??
- ????????? public ?Comparator?getSort()?{ ??
- ??????????????????? return ? new ?Comparator()?{ ??
- ???????????????????????????? public ? int ?compare(Object?arg1,?Object?arg2)?{ ??
- ????????????????????????????????????? return ?((String)?arg1).length()?-?((String)?arg2).length(); ??
- ????????????????????????????} ??
- ???????????????????}; ??
- ?????????} ??
- }??
<!---------------文件名:SortAction.java--------------> public class SortAction extends ActionSupport { //新建內(nèi)部類comparator,定義分類條件:按照字符串長度從短到長排列 public Comparator getSort() { return new Comparator() { public int compare(Object arg1, Object arg2) { return ((String) arg1).length() - ((String) arg2).length(); } }; } }
?
?
功能演示如圖 5.7 。
圖 5.7 ? sort 標簽范例圖
代碼解釋
( 1 ) sort 標簽的功能是對指定的數(shù)據(jù)集合進行排序或分類。可以自定義自己的排序或分類條件。 id 和之前技術(shù)標簽相同。 comparator 返回一個 java.util.Comparator 類型實例,用來定義排序或分類的條件。 source 定義的是被排序或分類的集合名。
( 2 )如果需要自定義 comparator ,則可以在 Action 中擴展 Comparator 接口,并且重寫 compare 方法就可以。如代碼所示,通過定義內(nèi)部類返回 Comparator 類型對象,在內(nèi)部類中重寫 compare 方法,定義了按照字符串長度由短到長排序的條件。
有對內(nèi)部類不是很熟悉的讀者可以去查看 Java 相關(guān)資料自行研究學習。這里就不具體記述了。
subset
標簽使用介紹
技術(shù)要點
本節(jié)代碼具體介紹 subset 控制標簽的使用方式介紹。
subset 標簽使用。
subset 標簽功能演示。
演示代碼
標簽使用 JSP 文件:
?
- <!--------------文件名:subsetTag.jsp--------------> ??
- ?????????<body> ??
- ???????????????????<h3?align= "left" > ??
- ????????????????????????????subset標簽使用范例 ??
- ???????????????????</h3> ??
- ???????????????????<s:set?name= "frank" ?value= "{'歐龍無苯油漆(六度)','進戶門套油漆','踢腳線','奧普浴霸'}" ?/> ??
- ???????????????????<s:subset??source= "frank" ?start= "2" ?count= "2" > ??
- ????????????????????????????<s:iterator>?????????????????????????????????? ??
- ????????????????????????????????????????????????????????<p> ??
- ?????????????????????????????????????????????????????????????????<s:property?/> ??
- ????????????????????????????????????????????????????????</p>?????????????????????????????????????? ??
- ????????????????????????????</s:iterator> ??
- ???????????????????</s:subset> ??
- ???????????????????<h3?align= "left" > ??
- ????????????????????????????使用decider的使用范例 ??
- ???????????????????</h3> ??
- ??
- ???????????????????<s:subset??source= "frank" ?decider= "selfDecider" > ??
- ????????????????????????????<s:iterator>?????????????????????????????????? ??
- ????????????????????????????????????????????????????????<p> ??
- ?????????????????????????????????????????????????????????????????<s:property?/> ??
- ????????????????????????????????????????????????????????</p>?????????????????????????????????????? ??
- ????????????????????????????</s:iterator> ??
- ???????????????????</s:subset> ??
- ?????????</body>??
<!--------------文件名:subsetTag.jsp--------------> <body> <h3 align="left"> subset標簽使用范例 </h3> <s:set name="frank" value="{'歐龍無苯油漆(六度)','進戶門套油漆','踢腳線','奧普浴霸'}" /> <s:subset source="frank" start="2" count="2"> <s:iterator> <p> <s:property /> </p> </s:iterator> </s:subset> <h3 align="left"> 使用decider的使用范例 </h3> <s:subset source="frank" decider="selfDecider"> <s:iterator> <p> <s:property /> </p> </s:iterator> </s:subset> </body>
?
定義的讀取子集條件代碼:
?
- <!----------------文件名:SelfDecider.java-------------> ??
- ??
- import ?org.apache.struts2.util.SubsetIteratorFilter.Decider; ??
- ??
- public ? class ?SelfDecider? implements ?Decider?{= ??
- ????????? public ? boolean ?decide(Object?arg1)? throws ?Exception?{ ??
- ???????????????????String?condition?=?(String)?arg1; ??
- ??????????????????? //讀取元素中包含"("字符的字符串 ??
- ??????????????????? return ?condition.indexOf( "(" )?>? 0 ; ??
- ?????????} ??
- }??
<!----------------文件名:SelfDecider.java-------------> import org.apache.struts2.util.SubsetIteratorFilter.Decider; public class SelfDecider implements Decider {= public boolean decide(Object arg1) throws Exception { String condition = (String) arg1; //讀取元素中包含"("字符的字符串 return condition.indexOf("(") > 0; } }
功能演示如圖 5.8 。
圖 5.8 ? subset 標簽范例圖
代碼解釋
( 1 ) subset 標簽的功能是根據(jù)讀取子集條件將某個集合的子集讀取出來。也可以自定義自己的讀取子集條件。 id 和之前技術(shù)標簽相同。 source 定義的是父集合名。 start 表示是從父集合哪一個元素的索引序號開始讀取。 count 表示的是讀取父集合中多少個元素。 decider 就是讀取子集的條件,可以不寫,如果寫了,則表明一個 Decider 對象實例。需要開發(fā)者自行定義此對象實例。
( 2 )如代碼所示,第一個示例表明的是從字符串集合中的第三個也就是索引號為 2 (索引號為 0 表示的是第一個元素)的元素開始讀取,讀取元素個數(shù)為 2 即只需要從第三個元素開始的兩個元素作為子集合的元素。因此頁面上顯示的是兩個元素。
第二個示例則自定義了 Decider 對象實例,代碼中表示將元素中包含字符“(”的元素讀取出來作為子集合的元素。因此在字符串集合中只有“ 歐龍無苯油漆 ( 六度 ) ”包含“(”字符,所以子集合中顯示在頁面上的元素只有它一個。
?
更多文章、技術(shù)交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
