如何将托管 bean 注入 FacesContext?
如何在 FacesContext
中将 @ApplicationScoped
托管 bean 替换为我自己的副本?我所拥有的只是一个 FacesContext 实例(我在 JSFUnit 内部)。
How can I replace an @ApplicationScoped
managed bean with my own copy of it in FacesContext
? All I have is an instance of FacesContext
(I'm inside JSFUnit).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
应用程序范围的 bean 存储在 以托管 bean 名称作为键的应用程序映射。
所以,应该这样做:
顺便说一下,在 JSF 更深入的范围内,直到 Servlet API,应用程序映射只是
ServletContext
属性。了解何时您手中只有ServletContext
非常有用。在同一行中, 会话映射映射到HttpSession
属性和请求映射到HttpServletRequest
属性。分别将它们用于会话和请求范围的 bean。Application scoped beans are stored in the application map with the managed bean name as key.
So, this should do:
By the way, deeper under the JSF covers up to the Servlet API, the application map is just a mapping of
ServletContext
attributes. Useful to know when it happens that you've only theServletContext
at your hands. And in the same line, the session map maps toHttpSession
attributes and the request map toHttpServletRequest
attributes. Use them for session and request scoped beans respectively.