簡體   English   中英

如何在每個jsf頁面加載之前調用后備bean構造函數/方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM