我目前轰动我的头在哪里把一些授权的东西在我的Java EE 6/JSF 2 webapp: 公共逻辑我有要求,所有的请求特定的cookie应该被重定向到另一个页面。在哪里把过滤器像逻辑在JSF2
我认为3个解决方案:
1)使用servlet 3.0滤波器(@WebFilter) 这个工作,我也可以注入我管理的bean那里,但管理的bean需要访问面孔的ExternalContext,这在过滤器调用时尚未成立,所以我就NPE的呼叫管理豆
2)使用阶段监听器 这种感觉尴尬,因为一个阶段侦听器不能是CDI组件,因此不能注入其他组件(通过el评估除外);对我来说,phaseListener感觉技术上会将导航逻辑放入其中。
3)中缝2.0,我可以使用“页面操作”这样的事情,但似乎这个概念并没有使它成为JSF 2.0
在这个缝看起来像:
<page view-id="/admin/*.jsf">
<action execute="#{authenticator.checkAccess()}" />
</page>
确实,JSF 2.0在渲染页面之前没有执行“控制器逻辑”的概念吗?
嗨,感谢您的快速回答,不知道这个功能!因此,如果我想确保我的所有jsf页面都被拦截,唯一的方法是确保所有jsf页面都包含该代码段(例如,通过页面合成)? – fujan 2012-04-05 06:41:59
不,不,这当然不是唯一的方法。如果我是你,我会进一步调查过滤选项 - 因为这是许多JSF应用程序的标准要求,所以对于你的问题肯定应该有一个复杂的解决方案。 – 2012-04-05 07:57:27