私たちの問題は、JSF + EJB を使用してデータベースを編集するための非常に基本的で単純な実装です。
簡単に言うと、2 つの別個の XHTML ビューで、2 つの別個のマネージド Bean @RequestScope を使用します。
WebuserListBean と EditWebuserBean、および @ManagedProperty を使用して WebuserListBean を注入し、選択したユーザー データを取得できるようにします。これまでのところ問題はありません。ビューにデータが正常に入力されました!
しかし!ユーザーを編集できるようにしたい!そしてここで(驚いたことに)、この問題を克服することはできません。
最初の試行: ビューを埋めた後にリクエスト スコープ Bean が停止しているため、Save() メソッドで @PostConstruct が再度起動しようとしますが、もちろんできません。そのため、データベースなどから取得することさえできませんでした。
2 回目の試行: リクエスト スコープ Bean はビューを埋めた後に死んでいるため、@postconstruct でユーザーをフィールドとして設定しないと、前のビューにリンクされていた (そして注入されたが、現在そのビューはあまりにも死んでいる)。
3 回目の試行: ViewScoped に RequestScope を挿入できない
わかりました、そして私たちの制限は、それが間違っていると思うからです:
- このために SessionScoped Managed Bean を作成したくありません
- パラメータなどを使用したくない.EJBを使用したい
- モジュールのエンドポイントであるステートフル セッション Bean にデータを格納できるかどうかわかりません。適切なアプローチですか?
アドバイスありがとうございます。コードを貼り付けることができますが、それは無意味だと思います! 乾杯!