0

私は3つのボタンを持つフォームを持っています。(終了、保存、キャンセル)

finish はタスクを終了し、タスクの概要に戻る必要があります。save は行った変更を保存し、タスクの詳細に戻る必要があります cancel は何も保存せずに詳細に戻る必要があります。

問題は「保存」です。フォームを送信して「保存」を行うためにactionListenerを呼び出したくありません。しかし、ボタンの「ナビゲーション結果」にもIDを渡したい

プレーンな html では、次のようになります。

<form action="taskDetails?id=5" method ="post">
   ....
</form>

そのため、すべてのパラメータは を使用して送信されPOSTますが、ID は を介し​​て利用できますGET

JSFフォームでこれを達成するにはどうすればよいですか?

私のボタンは現在次のようになっています:

 <h:form>
 ...
 <p:commandButton action="taskDetails" actionListener="taskEditBean.saveTask()" value="Save" />

 </h:form>

f:params を次のように使用します。

 <h:form>
 ...
 <p:commandButton action="taskDetails" actionListener="taskEditBean.saveTask()" value="Save">
      <f:param name="id" value="5" />
 </p:commandButton>

 </h:form>

も使用して送信されPOSTます...

4

1 に答える 1

0

あなたの具体的な機能要件が正しいと思うなら、これで十分です。

<p:commandButton value="Save" action="#{taskEditBean.saveTask}" />

public String saveTask() {
    // ... 

    return "taskDetails?id=5&faces-redirect=true";
}

これにより、POST 後に目的の URL にリダイレクトが送信されます。

于 2012-11-22T12:18:54.547 に答える