在JSF阶段事件(生命周期事件)中控制页面的访问权限

我们知道在JSF中,每个页面视图都具有自己的生命周期事件,我们也称阶段事件,我们可以在faces-config.xml中配置阶段事件监听器类,如:

该监听器类必须实现javax.faces.event.PhaseListener接口,且必须实现该接口的三个方法,getPhaseId(),beforePhase(),afterPhase()。getPhaseId用于设置在哪个阶段调用周期事件,设置方法是返回一个值:

分为几个阶段:

Restore_View:当(重新)访问JSP的时候,重建server端组件树。

Apply_Request Value:将request parameters 复制到component submitted values

Process_Validators:执行验证。

Update_Model Values:更新model数据:<h:inputText value="#{user.name}"/>

Invoke_Application:调用应用程序:Action。

Render_Response:渲染Response:保存状态并装载下一个视图。

beforePhase(),afterPhase()方法是要调用的事件方法,分为阶段事件发生前还是发生后。

 

鉴于JSF阶段事件在每次页面呈现时,即Render_Response阶段,会产生事件调用,因而,在其发生前的调用方法中通过检查权限来判断是否让页面呈现,也就是在beforePhase方法中实现检查逻辑,代码如下:

 

这种设计的优点:

  1. 不影响原有的业务逻辑代码的情况下,对页面进行权限控制;
  2. 集中处理页面权限,简单而高效;
  3. 可以实现多种角色的权限控制。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值