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