第三版是對(duì)第二版的一些簡(jiǎn)化,多了一個(gè)抽象基礎(chǔ)類(lèi),方便調(diào)用。
頁(yè)面代碼(變成了user.defaultDataModel):














































DataPage.java(沒(méi)有變化):





































































PagedListDataModel.java(添加了一些注釋?zhuān)?


















































































































































































































新增加的PageListBaseBean.java文件,所有需要分頁(yè)的bean繼承此類(lèi),簡(jiǎn)化代碼:
















































































User中的delete方法:
















Faces-config.xml:





有人反映會(huì)出現(xiàn)獲取兩次DataModel的情況,為什么呢?
經(jīng)過(guò)我的測(cè)試,是因?yàn)樵O(shè)置的datatable的rows屬性的值大于了程序中pageSize的值,比如你設(shè)置rows="12",而你的pageSize設(shè)置的是10,那么JSF為了滿足顯示12條得條件,就會(huì)取兩次數(shù)據(jù)集組成一個(gè)12跳得數(shù)據(jù)集顯示出來(lái),所以給定的rows屬性最好可以使用相關(guān)管理bean的pageSize變量,這樣前后臺(tái)統(tǒng)一數(shù)據(jù)條目,提高性能和可操作性。
為了方便大家JSF的項(xiàng)目開(kāi)發(fā),后面我會(huì)推出一套我自己寫(xiě)的一個(gè)基于JSF的框架,當(dāng)然此框架是基于實(shí)際項(xiàng)目成功實(shí)施后提取出來(lái)的,主要是簡(jiǎn)化了對(duì)表單的操作,增加一些常用的工具套件,例如分頁(yè),驗(yàn)證器等等。對(duì)表單操作部分的簡(jiǎn)化主要體現(xiàn)在:每種控件都可以和固定的模型綁定,這樣操作模型就可以做到對(duì)前臺(tái)控件的控制,比如后臺(tái)取值可以使用attributes.get("username"),設(shè)置前臺(tái)控件值可以使用attributes.put("username","admin"),對(duì)選擇控件操作也更加簡(jiǎn)便,當(dāng)使用put的方法的時(shí)候,前臺(tái)會(huì)自動(dòng)選擇到那項(xiàng),更重要的是這些簡(jiǎn)化不需要你寫(xiě)程序代碼,寫(xiě)一些簡(jiǎn)單的配置文件即可,而且選擇項(xiàng)不僅可以設(shè)置在配置文件中,還可以通過(guò)數(shù)據(jù)庫(kù)等其他數(shù)據(jù)源獲取,大大提高開(kāi)發(fā)效率。
---------------------------------------------------------
專(zhuān)注移動(dòng)開(kāi)發(fā)
Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian