真正的問題:有沒有辦法在初始頁面加載時清除所有組件的某些屬性?JSF 2 - 在頁面加載時清除組件屬性?
背景信息:
在我的申請,我有說話的一個服務層(服務層是由春豆是那些獲得注入到託管bean)一個JSF 2.0前端層。
服務層進行自己的驗證,並且使用我自己的驗證器類在前端圖層中進行相同的驗證,以嘗試避免代碼重複。這些驗證器類不是JSF驗證器,它們只是POJO。
我只對動作進行驗證,因此在動作方法中,我執行驗證,並且只有在有效時纔會調用服務層。我使用反射來設置UIComponent上的styleClass和title(所以如果UIComponent具有setStyleClass(:String)或setTitle(:String)方法,那麼我使用它們)。
這很好地工作,並在一個驗證錯誤,我看到一個很好的風格的文本框與彈出包含錯誤消息,如果我把鼠標懸停在它上面。但是,由於組件綁定到會話作用域的受管Bean,因此這些屬性似乎保持不變。所以如果我離開並回到同一頁面,styleClass和title仍然處於錯誤狀態。
有沒有辦法清除每個初始頁面加載的styleClass和title屬性?
感謝,
詹姆斯
附:我正在使用Action方法進行驗證,因爲我之前有過使用JSF 1.2及其驗證方法的一些問題,但不記得原因......所以這就是爲什麼我使用Action方法進行驗證的原因。
我需要實現一個PhaseListener嗎?我可以清除他們的組件,我想從管理bean中清除它們,但是PhaseListener可以避免我必須爲每個組件手動執行它。我不會清理styleClass,只是刪除它的某個'錯誤'類,所以認爲這可能是一個可能的解決方案...是一個PhaseListener的方式去,以及它應該採取的行動,我假設第一階段 – jamiebarrow 2010-03-18 06:43:18
[http://electrotek.wordpress.com/2008/01/28/jsf-error-fields-style/] [http://balusc.blogspot.com/2007/12/set-focus- in-jsf.html] – jamiebarrow 2010-03-18 06:54:44