我對「請求」類型的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