publicclassAddMaterialActionextendsActionSupport" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Struts2講義32

系統 1622 0

7.1.3 ? Set 集合類型數據類型轉換功能

技術要點 本節代碼具體介紹包含多個 Java 對象的 Set 集合類型如何進行類型轉換。

Set 集合類型類型轉換 Action 中使用方式。

Set 集合類型類型轉換在視圖界面的使用方式。

演示代碼

使用的 Action 文件:

Java代碼 復制代碼
  1. <!---------------文件名:AddMaterialAction.java------------> ??
  2. public ? class ?AddMaterialAction? extends ?ActionSupport?{ ??
  3. ????????? private ?Set<Material>?materialSet= new ?HashSet(); ??
  4. ??
  5. ????????? public ?String?execute()? throws ?Exception?{ ??
  6. ????????????????????? return ?SUCCESS; ??
  7. ?????????} ??
  8. ??
  9. ????????? public ?Set<Material>?getMaterialSet()?{ ??
  10. ??????????????????? return ?materialSet; ??
  11. ?????????} ??
  12. ? ??
  13. ????????? public ? void ?setMaterialSet(Set<Material>?materialSet)?{ ??
  14. ??????????????????? this .materialSet?=?materialSet; ??
  15. ?????????} ??
  16. }??
    <!---------------文件名:AddMaterialAction.java------------>
public class AddMaterialAction extends ActionSupport {
         private Set<Material> materialSet=new HashSet();

         public String execute() throws Exception {
                     return SUCCESS;
         }

         public Set<Material> getMaterialSet() {
                   return materialSet;
         }
 
         public void setMaterialSet(Set<Material> materialSet) {
                   this.materialSet = materialSet;
         }
}
  

配置文件中的導航定義:

Java代碼 復制代碼
  1. <!---------------------文件名:struts.xml----------------> ??
  2. <!--?Action所在包定義?--> ??
  3. ?????????< package ?name= "C07.1.3" ? extends = "struts-default" > ??
  4. ???????????????????<action?name= "addMaterial" ??
  5. ???????????????????????????? class = "com.action.AddMaterialAction" > ??
  6. ????????????????????????????<result?name= "input" >/jsp/addMaterial.jsp</result> ??
  7. ????????????????????????????<result?name= "success" >/jsp/showMaterial.jsp</result> ??
  8. ???????????????????</action> ??
  9. ?????????</ package >??
    <!---------------------文件名:struts.xml---------------->
<!-- Action所在包定義 -->
         <package name="C07.1.3" extends="struts-default">
                   <action name="addMaterial"
                            class="com.action.AddMaterialAction">
                            <result name="input">/jsp/addMaterial.jsp</result>
                            <result name="success">/jsp/showMaterial.jsp</result>
                   </action>
         </package>
  

指定 Set 類型中元素是具體何種對象屬性文件

Java代碼 復制代碼
  1. <!---------文件名:AddMaterialAction-conversion.properties------------> ??
  2. #集合屬性-Set類型 ??
  3. Element_materialSet=com.model.Material ??
  4. #制定索引 ??
  5. KeyProperty_materialSet=material??
    <!---------文件名:AddMaterialAction-conversion.properties------------>
#集合屬性-Set類型
Element_materialSet=com.model.Material
#制定索引
KeyProperty_materialSet=material
  

類型轉換的數據輸入 JSP 文件:

Java代碼 復制代碼
  1. <!-------------------文件名:addMaterial.jsp-----------------> ??
  2. ………… ??
  3. ?????????<!--?材料輸入表單?--> ??
  4. ???????????????????<table> ??
  5. ????????????????????????????<s:form?id= "materialForm" ?action= "addMaterial" ?theme= "simple" > ??
  6. ????????????????????????????<table> ??
  7. ????????????????????????????<tr> ??
  8. ????????????????????????????<td>材料名</td> ??
  9. ????????????????????????????<td>價格</td> ??
  10. ????????????????????????????<td>庫存量</td> ??
  11. ????????????????????????????<td>過期日期</td> ??
  12. ????????????????????????????</tr> ??
  13. ????????????????????????????<s:iterator?value= "new?int[4]" ?status= "m" > ??
  14. ????????????????????????????<tr>? ??
  15. ????????????????????????????<td><s:textfield?name= "%{'materialSet.makeNew['+#m.index+'].material'}" ?/></td> ??
  16. ????????????<td><s:textfield?name= "%{'materialSet.makeNew['+#m.index+'].bid'}" ?/></td> ??
  17. ????????????<td><s:textfield?name= "%{'materialSet.makeNew['+#m.index+'].mount'}" ?/></td> ??
  18. ????????????<td><s:datetimepicker?name= "%{'materialSet.makeNew['+#m.index+'].expireDate'}" ?/></td> ??
  19. ????????????????????????????</tr> ??
  20. ????????????????????????????</s:iterator> ??
  21. ????????????????????????????<tr> ??
  22. ????????????????????????????<td?colspan= "4" ><s:submit?value= "提交" ></s:submit> ??
  23. ????????????????????????????</tr> ??
  24. ????????????????????????????</table> ??
  25. ????????????????????????????</s:form> ??
  26. ???????????????????</table> ??
  27. …………??
    <!-------------------文件名:addMaterial.jsp----------------->
…………
         <!-- 材料輸入表單 -->
                   <table>
                            <s:form id="materialForm" action="addMaterial" theme="simple">
                            <table>
                            <tr>
                            <td>材料名</td>
                            <td>價格</td>
                            <td>庫存量</td>
                            <td>過期日期</td>
                            </tr>
                            <s:iterator value="new int[4]" status="m">
                            <tr> 
                            <td><s:textfield name="%{'materialSet.makeNew['+#m.index+'].material'}" /></td>
            <td><s:textfield name="%{'materialSet.makeNew['+#m.index+'].bid'}" /></td>
            <td><s:textfield name="%{'materialSet.makeNew['+#m.index+'].mount'}" /></td>
            <td><s:datetimepicker name="%{'materialSet.makeNew['+#m.index+'].expireDate'}" /></td>
                            </tr>
                            </s:iterator>
                            <tr>
                            <td colspan="4"><s:submit value="提交"></s:submit>
                            </tr>
                            </table>
                            </s:form>
                   </table>
…………
  

類型轉換的顯示數據 JSP 文件:

Java代碼 復制代碼
  1. <!-----------------文件名:showMaterial.jsp-----------------> ??
  2. ………… ??
  3. ?????????????<!--?材料數據顯示?--> ??
  4. ????????<table> ??
  5. ????????????<tr> ??
  6. ????????????<td>材料名</td> ??
  7. ????????????<td>價格</td> ??
  8. ????????????<td>庫存量</td> ??
  9. ????????????<td>過期日期</td> ??
  10. ????????????</tr> ??
  11. ????????????<s:iterator?value= "materialSet" ?status= "m" > ??
  12. ????????????<tr> ??
  13. ????????????<td><s:property?value= "material" ?></s:property></td> ??
  14. ????????????<td><s:property?value= "bid" ?></s:property></td> ??
  15. ????????????<td><s:property?value= "mount" ?></s:property></td> ??
  16. ????????????<td><s:property?value= "expireDate" ?></s:property></td> ??
  17. ????????????</tr> ??
  18. ????????????</s:iterator> ??
  19. ????????</table>????????????? ??
  20. …………??
    <!-----------------文件名:showMaterial.jsp----------------->
…………
             <!-- 材料數據顯示 -->
        <table>
            <tr>
            <td>材料名</td>
            <td>價格</td>
            <td>庫存量</td>
            <td>過期日期</td>
            </tr>
            <s:iterator value="materialSet" status="m">
            <tr>
            <td><s:property value="material" ></s:property></td>
            <td><s:property value="bid" ></s:property></td>
            <td><s:property value="mount" ></s:property></td>
            <td><s:property value="expireDate" ></s:property></td>
            </tr>
            </s:iterator>
        </table>             
…………
  

數據輸入如圖 7.5

Struts2講義32

7.5 ? 多個 material 對象數據輸入(組合成 Set 集合類型)

顯示數據如圖 7.6

Struts2講義32

7.6 ? 多個 material 對象數據顯示

代碼解釋

1 )本小節還是以輸入多個 Material 對象為例。先說明一下在 Action 文件中,像 List 集合類型示例一樣筆者定義了一個 Set 集合類型變量 materialSet 。不過該變量必須顯示定義它的類型。如代碼中所示“ new HashSet() ”一樣。這是必須的,否則 Struts2 不知道該變量是哪一種 Set 集合,這樣系統會找不到在屬性文件中定義的索引和元素對象類型。

2 )屬性文件中除了繼續定義元素對象類型之外,還需要定義該集合類型變量的索引即代碼中所示的“ KeyProperty_materialSet=material ”。其實定義索引的通用格式為“ KeyProperty_SetName= 屬性”。也許有的讀者很難理解,其實也不很難。首先在 Action 中定義的 Set 集合類型變量名要寫在“ KeyProperty_ ”之后。然后“ = ”后面寫的是元素對象中開發者想指定為索引的屬性。比如示例中元素對象是 Material 對象。該對象有幾個屬性,其中有個屬性為“ material ”是代表 Material 對象的材料名字,就把它定義為索引。這里筆者的定義想表明的意思就是 materialSet 這個 Set 集合類型變量的索引是組成它的元素 Material 對象中的 material 屬性。如果屬性文件中寫成“ KeyProperty_materialSet=bid ”則表明把 Material 對象中表示材料價格的 bid 屬性作為 materialSet 的索引。

3 )在數據輸入的 JSP 頁面中,筆者使用了 OGNL 中的“ makeNew API 。由它來建立 materialSet 中的 material 對象。然后依次輸入 material 對象各個屬性數據。

4 )除了上述幾點之外, Set 集合類型轉換和 List 集合類型轉換就沒什么大區別。因此注意到這幾點也就完成了集合類型對象類型轉換的介紹。

Struts2講義32


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 男人私人影院免费看视频 | 欧美午夜艳片欧美精品 | 操一操干一干 | 日本精品区 | 国产一区二区三区欧美精品 | 国产色视频一区二区三区 | 亚洲国产精品自产拍在线播放 | 一区二区三区四区五区 | 毛片毛片毛片毛片毛片毛片毛片 | 国产精品久久久久秋霞影视 | 久久这里只精品热免费99 | 久久精品国产色蜜蜜麻豆 | 亚洲一区 中文字幕 | 亚洲国产欧美精品一区二区三区 | 欧美va放荡人妇大片 | 老子影院午夜伦不卡手机 | 一区二区三区在线视频观看 | 亚洲乱码中文字幕 | 伊人99| 国产一区视频在线 | 久久手机免费视频 | 草久免费视频 | 久草精品在线播放 | 国产成人精品综合久久久软件 | 日本欧美一区二区三区 | 国产午夜精品一二区理论影院 | 青青国产成人久久激情911 | 91精品视频免费观看 | 亚洲欧美另类国产综合 | 日韩中文字幕在线有码视频网 | 26uuu在线| 精品无人乱码区1区2区3区 | 2019最新四虎免费8848 | 久草在线视频免费资源观看 | 精品久久在线 | 四虎永久免费地址ww417 | 国产夜色 | 中文字幕亚洲一区二区v@在线 | 久久亚洲国产午夜精品理论片 | 一级片视频免费看 | 欧美精品在线一区二区三区 |