- 背景:
我有支持 bean,它具有在文件上传时侦听的上传方法。现在我将此文件传递给解析器,并在解析器中对 csv 文件中存在的行进行验证检查。
如果验证失败,我必须记录信息并保存在数据库的记录表中。
- 我的最终目标:
是在日志记录bean中获取会话信息,以便我可以获取initialContext
并调用以ejb
将数据保存到数据库。
- 发生了什么:
在我的上传支持 bean 中,正在获取会话,但是当我调用解析器时,我不传递会话信息,因为我不希望解析器依赖于会话,因为我想单独对解析器进行单元测试。
所以在我的解析器中,我没有session
信息,解析器正在调用logging bean(just a bean with some ejb methods)
但在这个日志记录 bean 中,我需要会话,因为我需要获取initial context
.
问题
- 在 JSF 中有没有一种方法可以让我得到
session
我logging bean
的我的upload backing bean
?
我试着做:
FacesContext ctx = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) ctx.getExternalContext().getSession(false);
但session
价值是null
,更一般的问题是:
- 如何在模型 bean 或从我们有会话的支持 bean 引用的其他 bean 中获取会话信息?
- 我们在 jsf 中是否有通用方法,我们可以使用它访问整个 JSF 应用程序的会话信息?