以前のプロジェクトでは、フォームを送信しないためモデル更新が発生しなかったため、Seam 2のs:buttonまたはs:リンクを使用していました。JSF:フォーム提出なしのボタン/リンク
私はWELD + Seam 3に切り替えましたが、もうそれを見つけることができませんでした。私は目が見えないのですか、何か別のものを使用する必要がありますか?
Geziefer
以前のプロジェクトでは、フォームを送信しないためモデル更新が発生しなかったため、Seam 2のs:buttonまたはs:リンクを使用していました。JSF:フォーム提出なしのボタン/リンク
私はWELD + Seam 3に切り替えましたが、もうそれを見つけることができませんでした。私は目が見えないのですか、何か別のものを使用する必要がありますか?
Geziefer
私はRichFacesの4からコマンドボタンを使用してtrueにbypassUpdatesを設定することで、それを処理する方法を見つけた:私にとって
<a4j:commandButton value="Cancel" action="#{myHandler.cancel}"
bypassUpdates="true" render="myTable" />
私が出回ったRichFacesを使用していますので、このソリューションは、okです4 - しかし、私はまだ興味があります、標準のJSF 2.0でこれを解決する方法は?
普通のJSF 2.0でimmediate
属性をのtrue
に設定すると、これを行うことができます。
MyFacesのウィキから:immediate属性は、次のような効果を達成するために使用することができ
:
のcommandLinkまたはcommandButtonのが、現在ではあらゆるデータを処理せずに別のページを するようにユーザーをナビゲートすることを許可します現在の画面の の入力フィールド。特に、現在のところ検証エラーがある場合でも、これによりナビゲーションが発生する可能性があります( )。 「キャンセル」ボタン は通常このカテゴリに分類されます。
commandLinkまたはcommandButtonがバックエンドロジック をトリガーできるようにし、画面上の一部のフィールドの検証を無視します。この は、上記の項目のより一般的なバージョンです。
検証用に1つまたは複数の入力コンポーネントを「優先度が高い」に設定すると、 が無効になり、同じページ内の「優先度が低い」入力コンポーネントに対して検証が実行されません。これにより、表示されるエラーメッセージの数を減らすことができます。
その間、私はSeamから実際には姿を消したことを知りました。では、JSF 2でフォームを送信すべきでないページアクションをどのように実装するのでしょうか? –