1一152期六合图库资料
隨筆 - 119  文章 - 3173  trackbacks - 0
<2010年12月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

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

常用鏈接

留言簿(67)

隨筆分類(136)

隨筆檔案(122)

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 494894
  • 排名 - 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 交口稱贊 閱讀(3834) 評論(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
好好學習  回復  更多評論
  

只有注冊用戶登錄后才能發表評論。


網站導航:
 
1一152期六合图库资料 上下分的棋牌游戏 山东时时彩11选5开奖结果 街机捕鱼赢话费 股票投资分析报告 六肖中特期期准免费 广东快乐十分 广东新11选5软件 足彩总进球窍门 赖子麻将官网 重庆快乐十分历史开奖