亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

區分不同種類的JSF托管Bean

區分不同種類的JSF托管Bean

白衣非少年 2019-12-09 15:34:11
我最近讀了Neil Griffin撰寫的《區分不同類型的JSF托管豆》中的這篇文章,這使我開始思考自己的應用程序中不同bean之間的區別??焖倏偨Y要點:Model Managed-Bean:這種類型的Managed-Bean參與MVC設計模式的“模型”關注。當您看到“模型”一詞時,請考慮一下數據。JSF模型bean應該是遵循JavaBean設計模式且具有getters / setter封裝屬性的POJO。支持Managed-Bean:這種類型的Managed-Bean參與MVC設計模式的“視圖”關注。支持bean的目的是支持UI邏輯,并且與JSF視圖或Facelet組合中的JSF表單具有1 :: 1的關系。盡管它通常具有帶有關聯的getter / setter的JavaBean樣式的屬性,但它們是View的屬性,而不是基礎應用程序數據模型的屬性。JSF支持bean也可以具有JSF actionListener和valueChangeListener方法。Controller Managed-Bean:這種類型的Managed Bean參與了MVC設計模式的“ Controller”關注??刂破鱞ean的目的是執行某種業務邏輯并將導航結果返回給JSF導航處理程序。JSF控制器bean通常具有JSF動作方法(而不是actionListener方法)。支持托管的Bean:這種類型的Bean在MVC設計模式的“視圖”方面“支持”一個或多個視圖。典型的用例是向JSF h:selectOneMenu下拉列表提供一個ArrayList,這些列表出現在多個JSF視圖中。如果下拉列表中的數據特定于用戶,則Bean將保留在會話范圍內。實用程序托管Bean:這種類型的Bean為一個或多個JSF視圖提供某種“實用程序”功能。一個很好的例子就是FileUpload bean,它可以在多個Web應用程序中重用。這對我來說很有意義,在過去的幾個小時中,我一直在重構代碼,并針對用戶登錄提出了以下建議:這AuthenticationController是Controller Managed-Bean的示例。它是請求范圍的,具有兩個用于設置用戶名和密碼的獲取器和設置器,以及兩個導航方法,authenticate和logout,在成功登錄后將用戶導航到其專用區域,或在注銷時將其導航到主頁。這UserBean是Support Managed-Bean的示例。它是會話作用域的,并具有一個User帶有getter和setter 的類的實例(如果未通過身份驗證,則為null),僅此而已。該AuthenticationController有這個用戶作為托管屬性(@ManagedProperty(value = "#{userController.user} private User user;)。身份驗證成功后,AuthenticationController會將托管屬性設置為具有用于登錄的相應用戶名的實際用戶實例。如果User該類具有帶有組名的列表,那么任何新bean都將能夠將用戶作為托管屬性,并提取所需的數據,例如組成員身份。這樣就可以解決關注點分離問題嗎?
查看完整描述

2 回答

?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

我不能足夠贊成這個答案!我讀了同一篇文章的一百倍,并花了一些時間來嘗試遵循它的建議,直到我放棄,因為對我來說重復如此多的事情對我來說沒有任何意義……

查看完整回答
反對 回復 2019-12-09
  • 2 回答
  • 0 關注
  • 362 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號