2011-07-20 15 views
0

以前のプロジェクトでは、フォームを送信しないためモデル更新が発生しなかったため、Seam 2のs:buttonまたはs:リンクを使用していました。JSF:フォーム提出なしのボタン/リンク

私はWELD + Seam 3に切り替えましたが、もうそれを見つけることができませんでした。私は目が見えないのですか、何か別のものを使用する必要がありますか?

Geziefer

+0

その間、私はSeamから実際には姿を消したことを知りました。では、JSF 2でフォームを送信すべきでないページアクションをどのように実装するのでしょうか? –

答えて

0

私はRichFacesの4からコマンドボタンを使用してtrueにbypassUpdatesを設定することで、それを処理する方法を見つけた:私にとって

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

私が出回ったRichFacesを使用していますので、このソリューションは、okです4 - しかし、私はまだ興味があります、標準のJSF 2.0でこれを解決する方法は?

5

普通のJSF 2.0でimmediate属性をのtrueに設定すると、これを行うことができます。

MyFacesのウィキから:immediate属性は、次のような効果を達成するために使用することができ

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

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

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