問題タブ [backing-beans]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ajax - バッキングBeanスコープはどのように機能しますか?
JSFバッキングBeanスコープについて誤解があります。私はJSFを初めて使用し、単純なプロジェクトを作成しています。ほとんどのBeanにはセッションスコープがあります。しかし、私のサイトに多くのユーザーがいる場合、それは私のセッションが非常に大きくなり、サーバーを強制終了することを意味します。解決策はリクエストスコープBeanを使用することだと言う人もいます。しかし、たとえば、私のページを検証する必要があり、検証が失敗した場合、エラーメッセージを表示し、すべてのユーザー入力を保存する場合、この状況で何ができますか?AJAX-requestを使用するコンポーネントを使用しようとしていますが、リクエストBeanが再構築されないことを期待していますが、これは機能しません(使用しています<rich:datascroller>
)。
私はJSFの理解に大きな穴があると思います。誰かがこの状況で私がしなければならないことを説明したり、Beanスコープに関するいくつかの良い記事にリンクしてくれたらありがたいです。
jsf - JSF セッション Bean のベスト プラクティス
海外で作成された JSF アプリケーションに取り組んでおり、パフォーマンスの問題があります。
アプリケーションの実行速度が遅くなる理由を理解しようとしましたが、すべてのバッキング Bean がセッション スコープであり、多くの Bean が他の Bean を使用しているため、すべてインスタンス化されている可能性が高いことに気付きました。
おそらく 40 のバッキング Bean があり、それぞれに約 4000 行のコードと多くの可動部分が含まれています。
各セッションのこのがらくたがすべてアプリケーションを遅くしているという私の予感を誰かが確認または否定できますか?
jsf-2 - JSF ページでの同じクラスの複数の CDI @Named Bean インスタンスの再利用
JSF2 ページで同じ CDI Named Bean の複数のインスタンスを使用したいと考えています。(contentmanager カテゴリにアクセスするためのバッキング Bean があるとしますが、同じ JSF ページに複数のカテゴリを表示したいとします) @Named アノテーションのデフォルト名をどのように「オーバーライド」して、それらの 3 o 4 インスタンスを持つことができるのでしょうかマイページで。(¿ ページで Bean を使用するための古い JSP "useBean" タグを思い出してください... この方法で同じクラスの複数のインスタンスを使用できます) beans.xml について検索しましたが、見つかりません。古い faces-context.xml の「マネージド Bean」エントリを使用できますか? それが CDI @Named Bean に適用されるのか、それとも古い非 CDI 管理 Bean にのみ使用できるのかはわかりません。
情報をありがとう、イグナシオ
session - jsf セッションとブラウザーの更新の処理
バッキング Bean にセッションを持つ JSF 1.2 でアプリケーションを作成しています。安定性に関する最大の問題は、ユーザーがページを更新する (F5 キーを押す) か、ブラウザーで戻る矢印を使用して戻るときに発生します。
これを克服するための「賢い」(知識のある)方法が欲しいです。
私が得る最も一般的な例外は、更新後にユーザーがアプリケーションを使用し続けようとすると、次のようになるというものです。
ブラウザで。
ありがとう!
ajax - JSF: backingBean がまだ機能している間にページを表示する
このタイトルは正確ではないかもしれませんが、ここに問題があります。私はいくつかのJSFプロジェクトを行っていますが、次のものが必要です:
ユーザーがアプリケーションにログオンするとき (つまり、ホームページに移動するとき)、インターネットやデータベースから為替レートを取得するメソッドを呼び出す必要があります。そのメソッド (ページの解析、データの保存など) の実行には、約 5 ~ 6 秒かかります。ログインからホームページへのナビゲーションに 5 ~ 6 秒かかるのは望ましくありません。
1) ユーザーがログインすると、(5 ~ 6 秒後ではなく、すぐに) ホームページが表示され、メソッドがバックグラウンドで動作している間にクリックおよび/またはナビゲートできます。
2)ユーザーがログインすると、ホームページが(すぐに)表示され、ページの一部にロードサインが表示され、メソッドが実行された後、為替レートを含むdataTableが表示されます。
質問は、これを行う方法は? そのメソッドを HomePageBean コンストラクターに入れると、メソッドが実行されるまでページは表示されません。ホームページに非表示の要素を配置して、Getter 内でそのメソッドを呼び出すことができるかもしれませんが、それが正しい方法であるか (ハックのように思えます)、実際に機能するかはわかりません。
私は JSF 2.0 と Primefaces を使用しています。前もって感謝します
jsf - JSF マネージド Bean
みなさん、
私はこれらすべてに不慣れで、おそらくこれはばかげた質問になるでしょうが、
プロパティ flower - String とプロパティ List -bouquet を持つマネージド Bean があります。
xhtml には h:inputText があり、花の名前を入力する必要があります。ah:command ボタンをクリックすると、アクション #{managedBEan.addFlower} として呼び出されます。addFlower では、ユーザーが入力した花の名前を追加し、リストに追加 --- 私は ah:form を使用しています
しかし、ボタンをクリックしたときにプロパティの set メソッドが jsf によって呼び出されないようです。彼女が宣言されたように、花のプロパティは値として null を持っています
あなたの提案をありがとう、アレックス
jsf - マネージドBeanとバッキングBeanの違い
いくつかのフォーラムで「マネージドBean」と「バッキングBean」という用語に出くわしました。多くの人が両方とも同じだと思います。ただし、若干の違いがあるようです。これら2つの用語の正確な違いを理解するのを手伝ってくれる人はいますか?
jsf - JSF: データ変更後にページをリロードする
を使用して、この応答DataModel<MyObject>
に従ってデータ テーブルに入力します
各行の最後に、Bean の特定のメソッドを呼び出す削除ボタンがあります。データはきれいに削除されます。しかし、削除後にデータが変更されたので、変更を反映するためにページをリロードしたいと思います。
私の試みは、ナビゲーションルールを追加することでしたfaces-config.xml
:
概要 /overview.jsp 削除されたサブスクリプション /overview.jsp
持っている<redirect />
かどうかに関係なく、リロードも何もしていません。データが削除されるため、Bean のメソッドが実際に呼び出されます。
私のボタンは次のようになります。
属性を設定すると、type="submit"
実際に問題が解決します。ページがリロードされます。
私の質問:提出は本当に必要ですか?JSF (Apache MyFaces) には、削除したばかりの行を削除するために AJAX を使用するメカニズムがありませんか?
JSF初心者を助けてくれてありがとう。
java - ViewScope コンストラクターが 2 回呼び出されました。理由は不明です
Bean コンストラクターと ViewScope の呼び出しに関する他の質問を見てきましたが、まだ問題があります。私が見ている問題は、アプリケーションの 2 つの特定のページに関係しています。1 つ目は dataTable (現時点ではランダムに生成されたデータで満たされていますが、最終的にはデータベースを呼び出します) です。2 つ目のページはかなり単純な表示ページで、選択した行の情報が編集または表示用のフォームに表示されます。これは私のdetail.xhtml
ページです。問題となるのは、このページの Bean です。そのコンストラクターは 2 回呼び出されます。最初にページに移動したとき、もう一度 commandButton を押したときに、変更を送信するかキャンセルするかは関係ありません。detail.xhtml バッキング Bean のコンストラクターが 2 回目に呼び出されます。
私のビーンは@ViewScoped
、インポート中javax.faces.bean.ViewScoped
です。違いを生む可能性のあるその他の詳細がいくつかありますが、そうである場合、その理由はわかりません。私の UserDetailBean.java はベース Bean から継承されます (私はもともとこれを UIBaseBean.java と呼んでいます)。今、私の UIBaseBean は@RequestScoped
. 私が理解しているように、私の UserDetailBean は@ViewScoped
であるため、これは違いはありません。間違っている場合は修正してください。
違いを生む可能性のあるその他の詳細は、UIBaseBean と UserDetailBean の両方のコンストラクターでの変数の設定です。ページ上部のツールバーにユーザーの場所を表示したいと考えています。そのために、UIBaseBean に変数を作成しました。
また、UIBaseBean でセッターとゲッターを提供しました。UIBaseBean のコンストラクターで、変数を定義します。
この定義は、アプリケーションの特定のページのバッキング Bean の変数をオーバーライドすることを知っているためです。UserDetailBean で、String toolbarDescription に新しい値を割り当てます。この値は、detail.xhtml ページに表示されます。それ以外の場合、私の detail.xhtml ページの Bean は非常に単純で、detail.xhtml ページのフォームにデータを表示するためのプロパティを取得および設定します。
詳細ページは、そこへのナビゲーションがリダイレクトで発生し、(commandButton が押されたときの) ナビゲーションがリダイレクトで発生するように設定されています。リダイレクトの有無にかかわらずfaces-configナビゲーションルール、およびリダイレクトの有無にかかわらず暗黙のナビゲーションを使用してみましたが、 UserDetailBean コンストラクターは常に2回呼び出されます。
ああ、UserDetailBean コンストラクターの toolbarDescription 変数にブレークポイントを設定すると、プログラムが 2 回停止します。つまり、ページが最初に呼び出されたときと、詳細ページで commandButton を押した後でもう一度停止します。
私が説明したことから、私のコンストラクターが2回呼び出されている理由を誰か教えてもらえますか? Bean の設計が間違っていたのでしょうか、それとも問題はアプリケーションの奥深くにあるのでしょうか?
jsf - JSF が特定のバッキング Bean プロパティを更新しない
私は PrimeFaces 2.2 で JSF 2.0 を使用するプロジェクトに取り組んでいます。現在、ユーザーに登録プロセスを案内するウィザード (PrimeFaces コンポーネント) を使用しています。ウィザードには 4 つのステップがあります。
ここに問題があります。最初のステップで、ユーザーは自分の個人情報を入力し、それがバッキング Bean で正しく更新されました。ステップ 2 は単なるテキストの集まりであり、ステップ 3 は追加情報を入力するための別のフォームを提示します。
ただし、ステップ 3 では、データはバッキング Bean で更新されず、プロパティは null のままです。いくつかの回避策を試しましたが、何も変わりませんでした...
さて、コードの関連部分は次のとおりです。
これはビューとバッキング Bean からのものです。
私はすでにすべての可能な解決策を使い果たしました...誰かが少なくとも漠然とした考えを持っていれば、それは有効です. ありがとう!