1

以前のプロジェクトでは、フォームを送信せず、モデルの更新が行われなかったため、何かをキャンセルするときにSeam 2のs:buttonまたはs:linkをよく使用していました。

今、私はWELD + Seam 3に切り替えましたが、もうそこに見つかりませんでした-私はただ盲目ですか、それとも他のものを使用する必要がありますか?

Geziefer

4

2 に答える 2

5

immediateで属性をtrueに設定することにより、プレーンJSF2.0でそれを行うことができますh:commandButton

MyFaces wikiから:

即時属性を使用して、次の効果を実現できます。

現在の画面の入力フィールドに現在あるデータを処理せずに、commandLinkまたはcommandButtonがユーザーを別のページにナビゲートできるようにします。特に、これにより、現在検証エラーが発生している場合でもナビゲーションを実行できます。「キャンセル」ボタンは通常、このカテゴリに分類されます。

画面上の一部のフィールドの検証を無視しながら、commandLinkまたはcommandButtonがバックエンドロジックをトリガーできるようにします。これは、上記のアイテムのより一般的なバージョンです。

1つ以上の入力コンポーネントを検証用に「高優先度」にして、これらのいずれかが無効な場合、同じページ内の「低優先度」の入力コンポーネントに対して検証が実行されないようにします。これにより、表示されるエラーメッセージの数を減らすことができます。

于 2011-07-28T12:27:50.797 に答える
0

RichFaces 4のcommandButtonを使用し、bypassUpdatesをtrueに設定することで、これを処理する方法を見つけました。

<a4j:commandButton value="Cancel" action="#{myHandler.cancel}"
bypassUpdates="true" render="myTable" />

私はすでにRichFaces4を使用しているので、このソリューションは問題ありませんが、それでも興味があります。標準のJSF 2.0でこれを解決するにはどうすればよいですか?

于 2011-07-21T09:56:32.453 に答える