seam+jsf開發(fā)心得是什么

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)seam+jsf開發(fā)心得是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

目前創(chuàng)新互聯(lián)已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計、拉薩網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

Seam全稱是Jboss Seam,是一個Java EE 5框架。JSF是一種標(biāo)準(zhǔn)的 J2EE 表示層的技術(shù),其主旨是為了使 Java 開發(fā)人員能夠快速的開發(fā)基于 Java 的 Web 應(yīng)用程序。

1. 異常處理問題

請為JSF加入Seam框架,看看Seam框架 - 無縫集成JSF,共三部分,里面告訴了你怎么在servlet容器下配合spring使用Seam,Seam不是一定要在ejb3和jboss下才可以使用。因為單獨使用JSF的話她的異常處理功能很簡陋,跟蹤不到你想看的地方,對于開發(fā)很不方便,你只有打開日志才能看到問題所在,而Seam在加入 phase-listener以后,對JSF不同的生命周期都進行了功能增強,即使不使用Seam任何的功能,她也能毫無保留的輸出所有的異常棧。

2.css問題

如果你想在你的項目中使用JSF,css太重要了,很多剛開始使用JSF的人都不是很習(xí)慣JSF基于塊結(jié)構(gòu)開發(fā)頁面,因為JSF讓你注意的是內(nèi)容展現(xiàn)的結(jié)構(gòu),而不是內(nèi)容展現(xiàn)的樣式,這是完全符合w3開發(fā)html的初衷,大家使用< td>來做頁面展現(xiàn)布局,其實是錯誤已久的方法,如果在JSF中能了解如何使用css進行布局,JSF不適合復(fù)雜頁面設(shè)計這句話就不攻自破了。

3. 細心的使用dataTable組件

數(shù)據(jù)列表是最常用的頁面組件,但是我毫不留情的說JSF的dataTable組件的實現(xiàn)簡直太濫了,它就是 JSF 開發(fā)一大禍根。沒有很方便的解決特定行樣式顯示的問題,沒有解決回退按鈕風(fēng)險問題,沒有dataScroll和dataTable組件進行數(shù)據(jù)庫分頁的優(yōu)雅辦法,數(shù)據(jù)提交的幻影問題,我的開發(fā)很多時間用在了dataTable的和其他組件塊融合上面。不過JSF1.2通過統(tǒng)一el,加入了對jstl的 foreach標(biāo)記的支持,我雖然還沒有使用,但是我認為這有可能成為數(shù)據(jù)列表開發(fā)的一個有力補充。

4.建議把JSF的模型bean和后臺的業(yè)務(wù)bean合二為一

這樣可以在前端提交頁面與模型綁定的同時,完成業(yè)務(wù)bean的數(shù)據(jù)封裝,并且交由服務(wù)層處理一氣呵成。這樣做有個好處,就是我們會想方設(shè)法通過各種手段在***時間就完成模型bean對業(yè)務(wù)bean的封裝,消除服務(wù)層對dto的依賴。這樣是可行的,因為JSF的頁面綁定機制提供了很好的幫助。

5.請考慮多的使用convert組件

比如列表頁面有個radio塊,提交radio值就是一個int數(shù)值,然后在展現(xiàn)邏輯去恢復(fù)這個radio 值對應(yīng)的業(yè)務(wù)模型,這樣增加了展現(xiàn)邏輯處理頁面數(shù)據(jù)的負擔(dān),而且不好管理,如果把這個工作放在自定義的convert中,讓convert在頁面上顯示 int數(shù)值,在提交上尋找對象,那么頁面和服務(wù)層就屏蔽了這樣的工作,看到的都是對象的進出。

6.用了myfaces的組件

我使用了myfaces一個自己的組件,就是跨頁面專遞參數(shù),非常好用,剛使用JSF的朋友,可以看到跳轉(zhuǎn)的下一個頁面用它怎么做,但是建議傳遞模型對象,不要傳遞數(shù)值,你使用JSF就是因為她是基于對象考慮頁面設(shè)計的。

7. 小心使用session來處理JSF

JSF過多的使用了session,但是我可以肯定一點,展現(xiàn)層一定是需要基于狀態(tài)的方式來做的,這樣可以簡化開發(fā),無狀態(tài)的方式會帶來更多的無序代碼。不是每個人都是高手??梢钥紤]使用Seam的conversation來處理,她的長會話特別適合業(yè)務(wù)編輯,默認的短會話會填補JSF有時容易丟失的短期數(shù)據(jù)。

8.調(diào)試JSF的問題

有時你使用JSF想知道你的數(shù)據(jù)在哪個階段變化了,你不會把JSF代碼加入到自己的工程中來調(diào)試把,請加入自定義的phaseListener,繼承phaseListener這個接口,你可以在把你的程序設(shè)置在任何階段跳出來進行調(diào)試。

9. 分頁的問題

在google搜一下,有個http://www.blogjava.net/steady/archive/2005/12 /30/26013.aspx提供了分頁的方式,我就在使用,這是目前最可能的方式了把,呵呵,不過要注意她使dataTable的values直接使用了dataModel,她與Seam的@dataModel是不兼容的,所以不能使用Seam的@dataModel功能,需要使用get方式了。

10.如果想使用ajax4JSF等ajax框架,你需要使用facelet,讓頁面成為標(biāo)準(zhǔn)的xhtml,記好了,不要寫了一大堆才發(fā)現(xiàn)這個問題。

11. 如果你在dataTable列表頁面使用了radio的話,

你還想在列表上做一些link操作,一定要在操作上加入immediate= true,否則在沒有選擇radio的情況下她是不會讓你過去的。并且列表中要使用selectBooleanRadio,而不是 selectOneRadio或者selectManyRadio。checkbox也是一樣。

12.對于doGet的方式請使用Seam的組件。

13. 如果你導(dǎo)入了其他頁面,而沒有使用facelet的話,那么導(dǎo)入的那個頁面就要完全符合JSF組件的渲染方式,混合html會解析不出來。

反過來在主頁面應(yīng)該盡量多使用JSF標(biāo)記與html混合的方式,這樣可以使開發(fā)變得簡單,盡管有時候JSF會很丟丑,你試試每個html組件都有個 render屬性就知道了。JSF1.2已經(jīng)把混合的html作為一個output組件來輸出,可以和JSF組件兼容,是件好事。對于混合html這種方式,我想說你關(guān)注的是JSF組件和模型的關(guān)系,而不一定頁面都得是JSF組件標(biāo)記。

14.不要相信JSF運行的速度慢

JSF雖然在樹形組件處理上,每一個階段都經(jīng)歷了遞歸遍歷,但是要相信JSF依然很快,我現(xiàn)在的系統(tǒng)很快,如果你使用后很慢那是項目產(chǎn)生了問題,而不是框架的產(chǎn)生了問題。

上述就是小編為大家分享的seam+jsf開發(fā)心得是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站題目:seam+jsf開發(fā)心得是什么
瀏覽路徑:http://muchs.cn/article34/isjise.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機、品牌網(wǎng)站建設(shè)網(wǎng)站制作、云服務(wù)器、網(wǎng)站維護網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司