我想使用EJB 3有状态会话bean来实现这一点,但我的研究表明,SFSB与客户端的http会话无关,因此我必须通过httpSession手动跟踪它,这里有一些附加问题...
1)为什么它被称为会话bean?据我所见,它与会话无关,我可以通过将pojo存储在会话中来实现相同的功能。
2)如果我要注入的只是这个SFSB的新实例,那么注入它的意义何在?我不如使用pojo?
所以回到主要问题,我看到JSF是一种表示技术,因此不应用于逻辑,但它似乎是收集用户输入的完美选择。
我可以将JSF会话范围bean设置为所有请求bean的托管属性,这意味着它被注入到它们中,但与SFSB不同,JSF托管的会话范围bean与http会话绑定,因此只要http会话未失效,就始终注入相同的实例。
因此,我有多个层次:
第一层)处理演示文稿的JSF托管请求范围bean,每个页面1个。 第二层)JSF托管的会话范围bean,由请求bean设置值。 第三层)无状态会话EJB,在JSF会话范围bean中执行数据逻辑。
这样做有什么问题吗?
另一种选择是使用SFSB,但然后我必须在我的初始请求bean中注入它,然后将其存储在http会话中,并在每个后续请求bean中重新获取它-似乎很混乱。
或者我可以只将所有内容存储在会话中,但这不是理想的,因为它涉及使用文字键和转换等,容易出错。任何想法都会受到赞赏,我觉得我正在与这项技术作斗争,而不是与之合作。
谢谢