![](/img/trans.png)
[英]Setting Non English Characters on OutputText from backing bean in ADF
[英]Setting a parameter from a backing bean
我正在使用JSF構建一個CRUD Web應用程序,並制作了一個添加表單來創建一個新實體,該實體將持久保存到數據庫中。 成功保存后,我希望用戶導航到將顯示新創建實體的詳細信息的頁面。
更詳細地說,我不想做的是創建一個導航規則,在成功保存后,用戶將導航到“ dilutionDetail.xhtml”。 我使用“ faces-navigation.xml”來做。 這部分工作正常。
我的問題是我需要傳遞一個參數,該參數允許我獲取新創建的實體的ID。 波紋管是添加形式中的commandButton。
<p:commandButton value="Save" action="#{dilution.save()}">
<f:actionListener binding="#{dilution.prepareForSave()}" />
</p:commandButton>
當調用dilution.save()
時,該實體將保持dilution.save()
成功后還將返回“保存”以用於導航情況)。 dilution
是視圖范圍的托管bean。
保存看起來像這樣:
public String save(){
das.create(dilution);
return "saved";
}
das.create(dilution)
后, dilution
實體將具有我要傳遞的id作為參數。 我怎樣才能做到這一點?
您需要使用自己的@ViewScoped
托管bean支持您的“ dilutionDetail.xhtml”。 使它接收一個view參數,該參數將是您要加載的稀釋ID:
<f:metadata>
<f:viewParam name="id" value="#{dilutionDetailBean.id}" />
<f:event type="preRenderView" listener="#{dilutionDetailBean.loadDilution}"/>
</f:metadata>
通過此代碼,您將獲得所需的ID集,隨后,您可以使用loadDilution
方法從數據庫中加載它。
現在,保存時如何導航到它? 只需使用隱式導航即可。
Integer id = das.create(dilution);
return "dilutionDetail?id="+id;
也可以看看:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.