[英]How to call backing bean constructor/method before every jsf page load?
我已經將具有會話的托管bean作為managedbean-scope
,現在在支持bean的構造函數中,正在進行一些驗證,但是由於當用戶第一次嘗試訪問upload
頁面時,bean的范圍是session
,因此我調用了托管bean的構造函數並進行了一些操作驗證以查看用戶是否有權訪問上傳頁面。
因此,在第一次嘗試時,我打電話給構造函數,並且我收到驗證錯誤消息,提示用戶upload
頁面不可用,但是現在,如果我轉到任何其他選項卡並單擊返回以返回上upload
頁面菜單選項卡,該頁面就會顯示出來,我該如何顯示?更改此行為,以便在每個pageLoad上檢查驗證,也不能將managed-scoped
用作該頁面的request
,因為我需要在同一會話的不同請求之間維護一些信息。
這是代碼:
支持Bean構造函數:
public Upload()
{
ValidationStatus authorizeBean = validateUSER(user);
}
Faces-config.xml
<managed-bean>
<managed-bean-name>fileUpload</managed-bean-name>
<managed-bean-class>Upload</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
有什么想法嗎?
我認為bean是執行此操作的錯誤位置。 我將使用servlet過濾器或JSF Phase偵聽器來處理頁面訪問。
這里是使用servlet過濾器控制頁面訪問的示例。
使用@PostConstruct
參考在這里 。
在您的JSF
支持bean中
@PostConstruct
public void initIt(){
}
@PreDestroy
public void cleanUp(){
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.