如题,当一个JSF页面显示的时候,我需要控制页面的输入。当操作者有权限的时候允许输入,否则只能查看页面,不允许输入。
请问如何在backing Bean中控制?
经试验,页面从前一个页面跳转到当前页面时,JSF生命周期由前一个页面的调用应用程序阶段直接转到后一页面的呈现响应阶段,在呈现阶段根本取不到页面的具体组件,从而无法对其属性进行操作。
不知大家可否遇到到这个问题,是如何解决的,请不吝赐教!

解决方案 »

  1.   

    将用户的权限信息保存到Session中,如userBean然后disabled="#{userBean.level>1}"之类的控制,或者控制button的rendered属性
      

  2.   

    谢谢楼上两位,没有好的办法就只好这样了。
    我想通过更换renderer实现通用控制(因为这种页面很多,而且控制逻辑一样),结果renderer总是不执行。
    我的想法是 自定义一个renderer,在生命周期的呈现响应阶段 通过ViewRoot的setRendererType把renderer替换掉,不知这样做为何不行?能否把标准的renderer置换掉?
      

  3.   

    控制readered不是一个好的办法,比较麻烦,易出错!
      

  4.   

    andybogard ,zhuzhigangmsn 两位高手,能否给个例子或者大致思路
      

  5.   

    能不能注册一个PhaseListener,http://blog.csdn.net/wu_07/archive/2007/11/18/1891407.aspx
    然后在Restore View phase,通过getViewRoot后,遍历所有组件,设置相关组件只读属性
      

  6.   

    PhaseListener行不通,我刚开始就用PhaseListener