アプリケーション内のページ間でJSFナビゲーションについて読んできましたが、まだ少し混乱しています。私は、一連のページを持つ小さなWebアプリケーションを持っています。各ページには、続行ボタンと前のボタンがあります。ビューに入力された有効なデータを保存するには、ユーザーが前後に移動したときに有効なフォームデータスティックを作成する方法を見つけようとしています。最初は、セッションの範囲でページビューを持っていましたが、その悪い習慣を理解しました。私がキャプチャしているデータは、ページ内に取り込まれたデータに対応するBean内の複合オブジェクトを持つマネージドBeanです。しかし、私はそのマネージドBeanをセッションで読むのは良い考えでもありません。非常に多くの記事を読んだ後、私は解決策を知っておくべきだと思っていますが、検証済みのデータをJSFに保存してユーザーが前後にナビゲートするときに表示する方法についてはまだ明確ではありません。あなたの助けに感謝。ページ間にデータを保存する
答えて
データをデータベースに保存していませんか?その場合、要求スコープのマネージドBeanを使用することができます。元のページに戻ると、更新されたレコードがデータベースから再取得され、変更が表示されます。
私たちは、ユーザがタイムラインの観点から最終フォームページを提出するまで、このデータをデータベースに保存できないという制約があります。 – Vijaya
ウィザードのようなナビゲーションを実現しようとしているようです。このユースケースについては、私は@ConversationScoped
バックエンドBeanの使用を提案します。
このスコープはJSFでは提供されていませんが、完全に連携するCDIフレームワークによって提供されています。
これはあなたが、本質的にこれらの手順を実行する必要があり動作させるために:
のようなCDI Beanを作成:
@Named @ConversationScoped public class MyBean implements Serializable { @Inject private Conversation conversation; ... }
@Named
はJSFs@ManagedBean
にCDIの代替手段です。
クラスは、その状態をパッシベーションできるようにSerializable
インターフェイスを実装する必要があります。
CDI@Inject
コードで使用する会話オブジェクト。経由スタートどこでもあなたのコード内の会話:、プロセス入力データを変更、移動、DBへの固執、...
は、(会話を終了:
conversation.start();
は、あなたの魔法を行います)多分「Finish'-ボタンをクリックした後、最後のページで、あなたのケースで
conversation.end();
クイックgoogle検索では、このチュートリアルが役立つアンケートサイトを実装しました。 thisをご覧ください。
これが役に立ちます。楽しむ!
私が上で参照した 'viewaccessscope'について読んでください。これは、多くの場合、より簡単な方法で会話コーピングされたBeanの代わりに使用できます。より複雑な状況では、会話コーディングは確かに多分良いかもしれません。 – Kukeltje
@kukeltje:OPのコードの正確な構造を知らなくても、あなたは正しいかもしれません。私は '@ ConversationScoped'を提案しました。なぜなら、DeltaSpikeが追加の依存関係になるのと同時に、JEEサーバーですぐに利用できるからです。乾杯! – SimonSez
@ジャスパー:この提案に感謝します。これは間違いなく、私が見ているウィザードのスタイルの流れのために働くでしょう。 – Vijaya
- 1. ページ、Ajaxまたはカールの間でデータを同時に保存する
- 2. 時間温度データをDBに保存
- 3. 大きなモデルを保存する異なるPHPページ間の共通データ
- 4. JavaFXでページのデータを保存するページ区切り
- 5. ページのロード時にブラウザメモリのURLにjsonデータを保存する
- 6. C#を使用してページにデータを保存する方法
- 7. ページ間にオブジェクトを渡して保存する
- 8. 「詳細」ページにアクセスしている間に「リスト」ページのデータを保持する
- 9. 更新後のページにデータを保存する
- 10. PHPで複数のページにデータを保存する
- 11. ページを更新するとデータを保存する方法は?
- 12. ViewPagerページの変更時のデータ保存
- 13. データをFirebaseに一定期間保存する
- 14. 時間指定のデータをcassandraに保存する
- 15. アクティビティとフラグメントの間にデータを保存する
- 16. AngularJS - ルート間のデータの保存
- 17. 各ページにヘッダー行を保存する
- 18. $ .ajax()でページを保存するには
- 19. ページ上にURLハッシュを保存する
- 20. IOSデバイスにページを残す前にローカルストレージにデータを保存する方法は?
- 21. Vuejsデータを保存する
- 22. データを保存するiphone
- 23. Scrapy:データを保存する
- 24. Webscrapedデータを保存する
- 25. ViewModelデータを保存する
- 26. ASP.NET MVC2アクション間にデータを保存しますか?
- 27. iphoneにローカルにデータを保存する
- 28. データを*テーブルビュー*に保存するには?
- 29. Firebaseにデータを保存するには?
- 30. iPhoneにデータを保存するには?
'deltaspike' viewaccessscopeを見てください。 – Kukeltje
@ Kukeltje、現時点では新しいフレームワークを検討するのは難しいですが、利用できるオプションがあることを嬉しく思っています。提案していただきありがとうございます。 – Vijaya