我对“请求”类型的ManagedBeans的生命周期有些困惑。通过JSF中的请求ManagedBeans传递数据
在这个例子中,我使用一个请求bean“userBean”来填充这个页面和一个请求bean“userEditBean”来填充下面的编辑页面。
<h:form>
<h:panelGrid border="1" columns="2">
<h:outputText value="Name" />
<h:outputText value="#{userBean.user.name}" />
...
</h:panelGrid>
<h:commandButton value="Edit" action="edit" actionListener="#{userEditBean.init}">
<f:attribute name="user" value="#{userBean.user}"/>
</h:commandButton>
</h:form>
当我按下Edit按钮时,创建了一个userEditBean,但属性映射将“user”解析为null。
这是否意味着在userBean已被销毁之后EL属性被解析?我如何将传入bean中的值传递给传出的bean?
必须传入传入数据的奇怪之处是什么? – Stroboskop 2009-12-19 19:58:13
什么也没有,但只是当你使用标准的JSF组件时,你需要做更多的工作,因为你试图将整个Java对象传递给后续请求,而HTTP/HTML只需要和产品字符串。但我明白你想要什么,'t:saveState'就是你需要的。在'UserEditBean'中只需访问'UserBean'(托管属性注入?)以获取其'用户'属性。 – BalusC 2009-12-19 20:38:01
看起来像t:saveState做我想要的。而另一个罐子,我需要包括... – Stroboskop 2009-12-19 20:52:55