我们为什么要讨论managed bean的生命周期呢?
原因在于JSF2.0中的data即数据,都是从managed bean中取出来和放进去的。
managed bean的生命周期即此bean可以生存多久,bean上的数据可以保存多久。
关于数据保存有两种方式
一,控制 managed bean的生命周期,使bean活着,数据不丢失。
二,是每次提交数据 和 事件listener被触发的时候,表单<h:form></h:form>中的数据都会提交到bean生成managed bean
这样给人一种错觉,好像之前的bean还活着因为数据还在呀!其实不然,是new了新的bean只不过数据被重新注入了,给人的错觉就像还在使用原来的bean一样。你可以看到没有被<h:form></h:form>包括的范围内的bean的数据,bean的数据都初始化了。
这也是@ViewScoped诞生的原因,当然你也可以通过 把需要的数据全都放到<h:form></h:form>中来替代@ViewScoped