use*_*553 16 jsf session-scope servlet-filters managed-bean
我有一个名为userSession的SessionScoped bean来跟踪用户(用户名,ifLogged等).我想过滤一些页面,因此我需要从我创建的webFilter访问bean.我怎么做?我看起来甚至不可能将豆子导入到潜在的可见区域.
Bal*_*usC 27
在幕后,JSF将会话范围的托管bean存储为HttpSession托管bean名称作为键的属性.
所以,只要你有一个@ManagedBean @SessionScoped public class User {},这应该在doFilter()方法内部做:
HttpSession session = ((HttpServletRequest) request).getSession(false);
User user = (session != null) ? (User) session.getAttribute("user") : null;
if (user != null && user.isLoggedIn()) {
// Logged in.
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您实际上使用CDI而不是JSF来管理bean,那么只需@Inject直接在过滤器中使用.
| 归档时间: |
|
| 查看次数: |
12943 次 |
| 最近记录: |