Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 如何从servlet初始化请求范围内的托管Bean_Jsf_Servlets_Managed Bean - Fatal编程技术网

Jsf 如何从servlet初始化请求范围内的托管Bean

Jsf 如何从servlet初始化请求范围内的托管Bean,jsf,servlets,managed-bean,Jsf,Servlets,Managed Bean,我有一个servlet,它将在某些情况下使用ExternalContext.redirect导航到JSF页面。 我需要在这个Servlet中初始化一个托管Bean,并将其设置在请求范围中,这样我的JSF页面就可以直接访问托管Bean的属性并在页面加载中显示它们 我看到过使用getServletContext设置bean的帖子 像 但这种方法将在应用程序范围而不是请求范围中设置bean 我还尝试了以下方法: request.setAttribute("beanName",new Bean())

我有一个servlet,它将在某些情况下使用ExternalContext.redirect导航到JSF页面。 我需要在这个Servlet中初始化一个托管Bean,并将其设置在请求范围中,这样我的JSF页面就可以直接访问托管Bean的属性并在页面加载中显示它们

我看到过使用getServletContext设置bean的帖子

但这种方法将在应用程序范围而不是请求范围中设置bean

我还尝试了以下方法:

request.setAttribute("beanName",new Bean()) 
它不起作用


因此,请告诉我是否有任何方法可以在请求范围内设置/初始化托管bean

如果它是请求范围内的bean,请使用HttpServletRequestsetAttribute

BeanName BeanName=新BeanName

request.setAttributebeanName,beanName

如果它是会话范围的bean


request.getSession.setAttributebeanName,beanName

这是一个奇怪的要求。为什么不直接使用带有@RequestScope的bean并从页面访问它呢?创建一个带有@ViewScope注释的托管bean。bean将在用户访问视图后创建,这将在重定向中,并将一直存在,直到用户离开视图更改到另一个视图,关闭选项卡或关闭浏览器。您是在servlet中还是在支持bean中?我的要求是我正在从非JSF资源(如servlet)导航到JSF页面。为此,我需要在请求范围中预先加载托管bean的一些值,以便我呈现的页面可以提取这些值并显示@LaurentG我使用的是JSF 1.2-没有注释。我的需求并不关心它在JSF中的配置,因为我正在从一个非JSF资源的Servlet导航到一个JSF页面,我正在使用XHTML:fyiwy为什么你不在支持bean的构造函数中做Servlet的工作,然后直接链接到JSF页面?谢谢你的回复!但是我已经试过了。力起作用了。我希望豆子符合要求SCOPE@SaiPrasadSabeson你在faces-config.xml中为bean做了一个条目吗?是的,我做了……因为我们在Servlet中没有JSF生命周期,我想在我们的讨论中使用faces-config是不合时宜的,OP正在从servlet向JSF页面发送重定向。您应该知道重定向会创建一个新的HTTP请求。@BalusC好极了!同意..这就是我的请求范围不起作用的原因。。。这个新的请求是否还有其他方法可以保存我的bean?
request.setAttribute("beanName",new Bean())