如何在每个jsf页面加载之前调用backing bean构造函数/方法?

时间:2012-10-16 18:54:03

标签: java jsf session

我有一个会话为managedbean-scope的托管bean,现在在支持bean的构造函数中,我正在进行一些验证,但是当用户第一次尝试命中时,bean的范围是session {{1}我正在调用托管bean的构造函数并进行一些验证以查看用户是否有权访问上传页面或没有。

所以在第一次尝试时,我正在调用构造函数,并且我收到验证错误消息,指出upload页面不可供用户使用,但现在如果我转到任何其他选项卡并单击返回upload页面菜单选项卡,该页面显示,我如何更改此行为,以便在每个pageLoad上检查验证,我也不能使用upload作为页面的managed-scoped,因为我需要维护一些信息同一会话中的不同请求。

以下是代码:

Backing Bean构造函数:

request

faces-config.xml中

public Upload()
{
    ValidationStatus authorizeBean = validateUSER(user);                
}

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我认为bean是错误的地方。我会使用servlet过滤器或JSF阶段监听器来处理页面访问。

使用servlet过滤器控制页面访问的示例是here.

答案 1 :(得分:-2)

使用@PostConstruct

参考是here

JSF支持bean

@PostConstruct
public void initIt(){
}

@PreDestroy
public void cleanUp(){
}