【发布时间】:2013-06-16 18:59:33
【问题描述】:
我有一个 servlet,它将在某些条件下使用 ExternalContext.redirect 导航到 JSF 页面。 我需要在这个 Servlet 中初始化一个 Managed Bean 并将其设置在请求范围内,以便我的 JSF 页面可以直接访问 Managed Bean 的属性并在页面加载时显示它们。
我看过使用 getServletContext() 设置 bean 的帖子
喜欢,
getServletContext().setAttribute("beanName",new Bean())
它有效。但是这种方法会将 bean 设置在应用程序范围而不是请求范围内。
我还尝试了以下方法:
request.setAttribute("beanName",new Bean())
没用
所以请告诉我是否有任何方法可以在请求范围内设置/初始化托管 bean
【问题讨论】:
-
这是一个奇怪的要求。为什么不简单地使用带有
@RequestScope的 bean 并从您的页面访问它? -
创建一个带有
@ViewScoped注解的托管bean。 bean 将在用户访问视图后创建(这将在重定向中),并将一直存在到用户离开视图(更改为另一个视图,关闭选项卡或关闭浏览器)。 -
你是在 servlet 还是 backing bean 中?
-
我的要求是我从像 servlet 这样的非 JSF 资源导航到 JSF 页面。这样做我需要让我的托管 bean 在请求范围内预加载一些值,以便我的页面渲染可以拉取这些值并显示。 @LaurentG我正在使用JSF 1.2 - 没有注释。我的要求并不关心它在JSF中的配置方式,因为我正在从Servlet(非JSF资源)导航到JSF页面(我正在使用XHTML:仅供参考)
-
为什么不在支持bean的构造函数中做servlet的工作,然后直接链接到JSF页面?
标签: jsf servlets managed-bean