JSF使用
JavaBean
來達(dá)到程式邏輯與視圖分離的目的,在JSF中的Bean其角色是屬於Backing Bean,又稱之為Glue Bean,其作用是在真正的業(yè)務(wù)邏輯Bean及UI元件之間搭起橋樑,在Backing Bean中會呼叫業(yè)務(wù)邏輯Bean處理使用者的請求,或者是將業(yè)務(wù)處理結(jié)果放置其中,等待UI元件取出當(dāng)中的值並顯示結(jié)果給使用者。
JSF將Bean的管理集中在faces-config.xml中,一個(gè)例子如下:
....
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>
onlyfun.caterpillar.UserBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
....
這個(gè)例子我們在
第一個(gè)JSF程式
看過,<managed-bean-class>設(shè)定所要使用的Bean類別,<managed-bean-name>設(shè)定之名稱,可供我們在JSF頁面上使用Expression Language來取得或設(shè)定Bean的屬性,例如:
<h:inputText value=
"#{user.name}"
/>
<managed-bean-scope>設(shè)定Bean的存活範(fàn)圍,您可以設(shè)定為request、session 與application,設(shè)定為request時(shí),Bean的存活時(shí)間為請求階最,設(shè)定為session則在使用者應(yīng)用程式交互開始,直到關(guān)閉瀏覽器或顯式的結(jié)束會話為止(例如登出程式),設(shè)定為application的話,則Bean會一直存活,直到應(yīng)用程式關(guān)閉為止。
您還可以將存活範(fàn)圍設(shè)定為none,當(dāng)設(shè)定為none時(shí)會在需要的時(shí)候生成一個(gè)新的Bean,例如您在一個(gè)method中想要生成一個(gè)臨時(shí)的Bean,就可以將之設(shè)定為none。
在JSF頁面上要取得Bean的屬性,是使用
JSF表示語言 (Expression Language)
,要注意到的是,
JSF表示語言
是寫成 #{expression},而 JSP表示語言 是寫成 ${expression},因?yàn)楸硎緦涌赡苁鞘褂肑SP,所以必須特別區(qū)分,另外要注意的是,JSF的標(biāo)籤上之屬性設(shè)定時(shí),只接受JSF表示語言。