Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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 2 什么时候在JSF中实例化bean?_Jsf 2 - Fatal编程技术网

Jsf 2 什么时候在JSF中实例化bean?

Jsf 2 什么时候在JSF中实例化bean?,jsf-2,Jsf 2,如果PageA和PageB与BeanA和BeanB链接,当我们从PageA遍历到PageB时,BeanB的构造函数在渲染响应阶段,即渲染器渲染PageB标记时是否被调用?希望下面的描述能帮助您理解该行为 范围注释设置托管bean将放置到的范围。若并没有指定范围,那个么bean将默认为请求范围。下面简要讨论每个范围 范围说明 @请求范围 Bean的寿命与HTTP请求-响应的寿命一样长。它在HTTP请求时创建,在与HTTP请求关联的HTTP响应完成时销毁 @无范围 Bean的寿命与单个EL评估一样长

如果PageA和PageB与BeanA和BeanB链接,当我们从PageA遍历到PageB时,BeanB的构造函数在渲染响应阶段,即渲染器渲染PageB标记时是否被调用?

希望下面的描述能帮助您理解该行为

范围注释设置托管bean将放置到的范围。若并没有指定范围,那个么bean将默认为请求范围。下面简要讨论每个范围

范围说明

@请求范围
Bean的寿命与HTTP请求-响应的寿命一样长。它在HTTP请求时创建,在与HTTP请求关联的HTTP响应完成时销毁

@无范围

Bean的寿命与单个EL评估一样长。它在EL评估时创建,并在EL评估后立即销毁

@视域

只要用户在浏览器窗口/选项卡中与相同的JSF视图交互,Bean就会存在。它是根据HTTP请求创建的,一旦用户回发到不同的视图,它就会被销毁

@已处理的会话
Bean的寿命与HTTP会话的寿命一样长。它在会话中涉及此bean的第一个HTTP请求时创建,并在HTTP会话无效时销毁

@适用范围
Bean的寿命与web应用程序的寿命一样长。它在应用程序中涉及此bean的第一个HTTP请求时创建(或者当web应用程序启动并且在@ManagedBean中设置了eager=true属性时),并在web应用程序关闭时销毁

@自定义范围
只要为这个作用域创建的自定义映射中的Bean条目存在,Bean就存在

另一个重要特征是渴望。如果eager=“true”,则在第一次请求托管bean之前创建托管bean,否则将使用默认的“惰性”初始化,只有在请求托管bean时才会创建托管bean

@ManagedBean(name = "helloWorld", eager = true)
@RequestScoped
public class HelloWorld {

 ....
参考资料:


因此,如果PageA有Sessionscoped BEAN beanA,当PageA在呈现响应阶段呈现时,它会被实例化吗?是的,当第一个HTTP请求到达页面时,它会被呈现并启动BEAN。因此,该实例一直处于活动状态,直到会话过期。哪个规范描述了jsf中的作用域?@jayallalk,如果在您的答案中包含引用,请将其标记为该引用,并包含来自源代码的链接。@Arash,@Xtreme,感谢您的建议您可以从以下链接和