隨筆 - 119  文章 - 3173  trackbacks - 0
          <2010年12月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          交友莫獨酒,茅臺西鳳游。
          口干古井貢,心徜洋河流。
          稱多情杜康,趟無量雙溝。
          贊中華巍巍,無此不銷愁。

          常用鏈接

          留言簿(68)

          隨筆分類(136)

          隨筆檔案(122)

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 526071
          • 排名 - 93

          最新評論

          用struts2的標簽checkboxlist可以很方便的用生成checkbox組,但是讓其默認選中指定checkbox卻是非常麻煩. 

          之前有2種方案: 
          第一種是修改struts2 tag的源代碼. 
          比如http://jolestar.javaeye.com/blog/160360 
          第二種就是徹底妥協,在action里面把list bean轉成數組,賦給checkboxlist的value屬性. 

          這兩種solution都不是那么優雅,作為一個有房貸沒希望的IT民工我不禁問自己: 
          怎么能對自己的要求這么低呢? 怎么能應付了事呢? 

          翻文檔,研究了下ognl的語法,終于讓我找到了一種方便的寫法. 


          JavaBean 
          1. public class Operate extends BaseBean {  
          2.     private long id;  
          3.     private String name;  
          4. }  


          Action中初始化allOpList和myOpList. 
          1. private List<Operate> myOpList;  
          2. private List<Operate> allOpList;  


          前臺jsp用strtus2標簽生成checkboxlist 
          1. <s:checkboxlist name="myOpList.id" list="allOpList" listValue="name"  listKey="id"   
          2. value="myOpList.{#this.id}"/>  



          checkboxlist標簽用allOpList的內容生成checkbox, 并且用myOpList的值選中默認. 
          并且當頁面提交的時候,又能自動把checkbox的選中情況,賦給myOpList.Operate.id屬性. 

          這樣從后到前到再到后,全都是用list bean去完成,用法統一,不要轉換,全部操作的是bean而不是數組. 


          精華在于myOpList.{#this.id}這個ognl表達式,自動生成[4, 11]這種格式的數組. 


          引申一下,ognl的語法強大到可以myOpList.{?#this.enable > 0}來做過濾,看著有點Jquery的味道,非常好用. 

          有同志會說,這種過濾沒有什么意義,不如在后臺sql里面做. 
          假設一個應用場景: 
          全部用戶信息是放在cache里面的list,根據前一個頁面來過濾男女,然后顯示. 
          這時候這個過濾表達式就發揮作用了,不用您在后臺一個一個過濾重新組裝list了. 
          userInfoist.{?#this.sex > 0} 


          簡潔而優雅,這下能過自己這關了. 


          posted on 2010-12-02 14:09 交口稱贊 閱讀(4024) 評論(5)  編輯  收藏 所屬分類: struts

          FeedBack:
          # re: 原創小技巧解決list做strtus2標簽checkboxlist默認值無法選中的問 2010-12-02 14:50 何楊
          久違,兩年不見了。  回復  更多評論
            
          # re: 原創小技巧解決list做strtus2標簽checkboxlist默認值無法選中的問 2010-12-02 16:17 交口稱贊
          ......................
          低調  回復  更多評論
            
          # re: 原創小技巧解決list做strtus2標簽checkboxlist默認值無法選中的問[未登錄] 2010-12-02 17:47 GreatGhoul
          的確是一種比較爽的實現呀。  回復  更多評論
            
          # re: 原創小技巧解決list做strtus2標簽checkboxlist默認值無法選中的問 2010-12-03 09:32 交口稱贊
          必須的,批量初始化批量提交,結合我整的框架用起來愜意啊.  回復  更多評論
            
          # Air Retro Jordan 2010-12-03 16:23 Air Retro Jordan
          好好學習  回復  更多評論
            
          主站蜘蛛池模板: 泰来县| 宝清县| 平顺县| 荆州市| 禄丰县| 张家界市| 永定县| 广水市| 德江县| 凤翔县| 克山县| 莱州市| 上栗县| 衡阳县| 靖西县| 绵阳市| 南昌县| 潢川县| 伊金霍洛旗| 和静县| 大英县| 会同县| 岳阳县| 淮安市| 扎兰屯市| 芮城县| 德江县| 孟州市| 介休市| 仁化县| 红桥区| 固镇县| 泸定县| 油尖旺区| 芜湖市| 鄄城县| 神农架林区| 宝清县| 虞城县| 大理市| 英吉沙县|