2012-03-29 88 views
0

我有一个JSF会话范围bean,我将当前用户(登录)信息保存在该bean中。我也有一个既不是servlet也不是bean的类,它只是一个类。我想访问jsf bean并获取类中的当前用户信息。我找到了一个servlet访问jsf bean的解决方案,但是我找不到解决这个问题的办法。有没有办法做到这一点?从既不是servlet也不是bean的类访问JSF bean

谢谢!

回答

1

如果提到的类的实例在同一个线程已调用FacesServlet HTTP请求的线程运行,那么你可以通过FacesContext然后Application#evaluateExpressionGet()得到它。另请参阅Get JSF managed bean by name in any Servlet related class

如果提到的类的实例正在不同的线程中运行,那么您需要事先将所需的信息传递给类的构造函数,方法或将所需的信息存储在某个共享数据源中JSF webapp和独立类都可以访问数据库,本地磁盘文件系统文件或JNDI上下文。根据具体情况和环境,CDI的@Named + @Inject也可能是解决方案。

“最好的方法”取决于具体的功能要求,这个问题并不清楚,所以我不能指出正确的方式,也不能给出任何启示的例子。