Передайте параметр в базовый компонент новой страницы во время навигации - PullRequest
0 голосов
/ 17 октября 2019

Я использую 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 для базового компонента orderForm.orderId.

В другом местеЯ использую commandButton для вызова действия в компоненте поддержки текущей страницы и перехода к новой странице:

<h:commandButton value="Create Batch" action="#{orderList.createBatchOrder}" />

Действие в компоненте поддержки выглядит следующим образом:

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>

Как передать параметр для orderForm.orderId при навигации с использованием действия в компоненте поддержки?

1 Ответ

0 голосов
/ 17 октября 2019

Перед перенаправлением поместите ваш параметр на флэш:

FacesContext.getCurrentInstance().getExternalContext().getFlash().put(key, value);

После перенаправления вы можете получить его:

FacesContext.getCurrentInstance().getExternalContext().getFlash().get(key);
...