导航时将参数传递给新页面的支持 bean
Pass parameter to the backing bean of the new page while navigation
我使用 commandLink 导航到另一个页面:
<t:commandLink action="go_orderForm" immediate="true">
<h:outputText value="#{order.number}" />
<t:updateActionListener property="#{orderForm.orderId}"
value="#{order.id}" />
</t:commandLink>
这正在工作并将 order.id
的值设置为支持 bean orderForm.orderId
。
在另一个地方,我使用 commandButton 在当前页面的支持 bean 中调用一个操作,然后导航到新页面:
<h:commandButton value="Create Batch" action="#{orderList.createBatchOrder}" />
支持 bean 中的操作如下所示:
public String createBatchOrder() {
// do something
return "go_orderForm";
}
faces-config.xml
包含
<navigation-rule>
<navigation-case>
<from-outcome>go_orderForm</from-outcome>
<to-view-id>/orderForm.jsp</to-view-id>
</navigation-case>
</navigation-rule>
当我使用支持 bean 中的操作进行导航时,如何传递 orderForm.orderId
的参数?
在重定向之前将您的参数放入 flash:
FacesContext.getCurrentInstance().getExternalContext().getFlash().put(key, value);
重定向后您可以通过以下方式获取:
FacesContext.getCurrentInstance().getExternalContext().getFlash().get(key);
我使用 commandLink 导航到另一个页面:
<t:commandLink action="go_orderForm" immediate="true">
<h:outputText value="#{order.number}" />
<t:updateActionListener property="#{orderForm.orderId}"
value="#{order.id}" />
</t:commandLink>
这正在工作并将 order.id
的值设置为支持 bean orderForm.orderId
。
在另一个地方,我使用 commandButton 在当前页面的支持 bean 中调用一个操作,然后导航到新页面:
<h:commandButton value="Create Batch" action="#{orderList.createBatchOrder}" />
支持 bean 中的操作如下所示:
public String createBatchOrder() {
// do something
return "go_orderForm";
}
faces-config.xml
包含
<navigation-rule>
<navigation-case>
<from-outcome>go_orderForm</from-outcome>
<to-view-id>/orderForm.jsp</to-view-id>
</navigation-case>
</navigation-rule>
当我使用支持 bean 中的操作进行导航时,如何传递 orderForm.orderId
的参数?
在重定向之前将您的参数放入 flash:
FacesContext.getCurrentInstance().getExternalContext().getFlash().put(key, value);
重定向后您可以通过以下方式获取:
FacesContext.getCurrentInstance().getExternalContext().getFlash().get(key);