【发布时间】:2012-04-18 00:27:04
【问题描述】:
我目前正在思考如何在我的 Java EE 6/JSF 2 webapp 中为一些授权内容放置通用逻辑: 我有一个要求,所有带有特定 cookie 的请求都应该重定向到另一个页面。
我考虑了 3 个解决方案:
1) 使用 servlet 3.0 过滤器 (@WebFilter) 这行得通,我也可以在那里注入我的托管 bean,但是托管 bean 需要访问外部上下文,在过滤器调用时尚未设置,所以我得到 NPE 调用托管 bean
2) 使用相位监听器 这感觉很尴尬,因为相位监听器不能是 CDI 组件,因此不能注入其他组件(通过 el 评估除外);对我来说,一个 phaseListener 感觉在技术上将导航逻辑放入其中。
3) 在 Seam 2.0 中,我可以使用“页面操作” 来处理类似的事情,但似乎这个概念并没有融入 JSF 2.0
在接缝中看起来像:
<page view-id="/admin/*.jsf">
<action execute="#{authenticator.checkAccess()}" />
</page>
JSF 2.0 真的没有在渲染页面之前执行“控制器逻辑”的概念吗?
【问题讨论】: