問題タブ [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.
java - バッキングBeanAからバッキングBeanBへのJSFプロパティの転送
私は現在JSF2.0に深く関わっていて、あるビューから別のビューへのマネージドBeanプロパティの「トランスポート」について少し理解が不足しています。少し調べてみましたが、良い例が見つからなかったので、チュートリアルを教えてもらえたり、少し説明してもらえたら本当にありがたいです。
これが私のシナリオです:
私は小さな遊び場カレンダーアプリケーションを開発しています。最初のビューselect.xhtml
には、ユーザーが特定の日付を選択できるカレンダーセレクターが含まれています。
対応するバッキングBeanは次のようになります。
からフォームを送信すると、select.xhtml
に転送されますday.xhtml
バッキングBeanは次のようになります。
私は今問題を解決しようとしています:セレクターからエディターdate
にパラメーターを転送するにはどうすればよいですか?
私はいくつかのオプションを試しましたが、そのうちの1つは次のとおりです。
デバッガーは、実際、のdate
プロパティにcalendarEdit
からの値が入力されていることを示していますcalendarSelect
が、day.xhtml
は新しいビューであるためCalendarEditComponent
、ビューのセレクターからの日付を入力したものではなく、新しいバッキングBeanが作成されていselect
ます。
私は、1つの解決策は、SessionScoped
すべての値を保持するバッキングBeanを作成することであることを読みました。しかし、これは私が想定している方法ではありません。セッション内の情報は実際には必要ないため、AからBに「移動」したいだけです。セッションベースのアプローチのもう1つの欠点は、次のことができることです。セッションごとに1つのセレクターと1つのエディターのみを使用します。これは、マルチウィンドウブラウジングなどを考える場合は受け入れられないと思います。
私は本当にそのようなシナリオに遭遇した最初の人ではないと思います。JSFがこれに対してエレガントなソリューションを提供すると確信していますが、そのソリューションを見つけることができませんでした。
繰り返しになりますが、誰かがこれにアプローチする方法を知っているなら、私は聞いています!;-)
jsf - JSF 1.2 h:commandButton で Bean メソッドを呼び出すと、常に機能しない
最近、私は本当に奇妙な問題に遭遇しました。それは次のとおりです: 典型的な CRUD ワークフローの保存ページで、h:commandButton をクリックしてバッキング エンド Bean の保存メソッドを呼び出すと、常に機能するとは限りません。Bean で指示したメソッドを終了すると、期待どおりに機能することがあります。それ以外の場合は、bean メソッドに入ることは言うまでもなく、更新モード フェーズに入ることなく、新しい Bean を作成するだけです。コンソールに表示されるエラー メッセージはありません。[コンポーネント] コンポーネント j_id26 のレンダラー タイプがありません。
すべてのJSF htmlタグにidを割り当てて解決しようとしました。しかし、それは無駄に見えます。私でさえ、決まったやり方で再現することはできません。基本的なエラーの原則を把握するにはあまりにもランダムです。
ページのソースが少し大きいためです。皆さんが同様の問題を抱えているかどうかを確認させてください。それから、必要に応じてより多くの手がかりを示すためにさらに一歩踏み出します.
前もって感謝します。
コードは次のとおりです: 1.graphtemplate.xhtml
…………
2.GraphTemplateBean.java
...................................
java - 確認ページに JSF RequestScoped Bean を使用する
ユーザーをロードし、その特定のユーザーにロールを割り当てることができる JSF ページがあります。Backing BeanAssignRolesBean
は@RequestScoped
であり、そのままにしておきたいと思います。しかし、ここに私の問題があります...
フォームが送信されると、 が呼び出されますAssignRolesBean.execute()
。これにより、確認ページへのパスが返されます。この確認ページでは、どの新しい役割が割り当てられ、どの役割が削除されるかを示したいと思います。ただし、確認ページにユーザーをロードするのに問題があります。
最初の AssignRoles ページで、userId は GET パラメータを使用して設定されます。h:inputHidden
次に、ページの要素として追加されます。それは提出されます。しかし、次のページでも、userId が設定されていません (これにより User が読み込まれます)。RequestScope を保持し、userId を SessionMap に保存する必要がない方法はありますか? 非表示の入力を使用すると、ページ間でデータを取得できるようになると言われています。しかし、私はそれで問題があります。
java - 結合液
私は、HtmlSelectManyCheckbox によってバインドされている以下のような 1 つのコンポーネントを持っています。
バッキングビーンHoliday_Declarationを使用して、チェックされたチェックボックスの総数とその値が必要です。
助けてくれてありがとう...
jsf - Websphere7.0.0.9上のJSF1.2:バッキングBeanのプロパティが見つかりません
私はJSF1.2+EJB3.0 +Websphere7.0.0.3に取り組んでいます。ビジネスロジック層とデータ層(EJB 3.0)全体がテストされ、最初から正常に機能します。JSF1.2を統合した後、データベースからデータを取得しようとすると、次のエラーが発生しました。
これらは私のアーティファクトです:
web.xml
faces-config.xml
modelroot.jsp
ModelRootBean(backingbean)
このエラーは私の愚かな間違いが原因である可能性があると確信していますが、私はそれを理解できませんでした。誰かが私を助けることができますか?
jsf - JQuery で読み込まれた JSF ページが親ページを更新しない (Primefaces)
私は現在、JSF2.0 で Facelets ページを作成しており、Primefaces を使用して見栄えを良くしています:D. しかし、私には解決できないように見える問題があります。私のページの背後にあるアイデアは次のとおりです。さまざまなアコーディオン タブを含むダッシュボード ページがあり、各タブにはプライムフェイス データテーブルがあります。そのデータテーブルには、特定のユーザーの行がいくつかあります。しかし、データテーブルに新しい行を追加したいときは、次の方法を使用します。データテーブルの下に「行を追加」ボタンがあり、クリックすると、JQuery を介してボタンの下にある div にページが読み込まれます。そのdivには、検証などがロードされた「addrow」ページがあります。
しかし、ここに問題があります。含まれているページの追加ボタンをクリックすると、「親」ページのデータテーブルを更新したいので、追加ページを含むページで、これは更新属性として機能しません私の p:commandButton は、親ページでデータテーブルまたはその他のコンポーネントを見つけられないようです。
親ページのコンポーネントを更新する方法を誰かが教えてくれたら?
関連するコード フラグメントは次のとおりです。 親ページ (「コンテンツ div」に追加ページを含む)
追加ページ
JQuery ロード メソッド
バッキングビーンの追加方法
私の backingBean は sessionscoped です。
前もって感謝します
java - Javaによる最も効率的なJSF1.2ナビゲーション
index.xhtmlJSFフロントページにドロップダウンがあります。関連するコード/コマンドボタンは次のようになります。
action
以前は「こんにちは」に設定されていましたが、私の場合はfaces-context.xml
:
action
が「hello」に設定されている場合、retrieve
ボタンをクリックすると、その面で正常に機能し、navが処理され、MyBacking.setChosenNode
メソッドによって必要なすべてのデータが割り当てられるため、nodeMgmt.xhtmlのコンテンツが完全に入力されて表示されます。
ただし、ユーザーのクリックによる最初のアクティビティがretrieve
タイムアウトした場合、Beanがタイムアウトを検出してもWebページがハングするため、ユーザーを「タイムアウト」ページにリダイレクトしたいと思います。
タイムアウトメッセージ(アプリの「内部」にあるときにエラー検出がすでに存在する)を返すバッキングBeanを処理するために、faces-context.xml
ファイルを使用するのではなく、内部で処理することを考えました。
FacesContext.getCurrentInstance()。getExternalContext()。redirectを見つけましたが、JSF1.2javadocにはこれがありません。おそらくそれは特集されていないからですか?それは混乱を招きますがリダイレクトします。この方法に関するドキュメントがないのはなぜですか?
それでも、ページにリダイレクトされますが、最初のリクエスト中にBeanによってインスタンス化されたデータを考慮せずにレンダリングされます。Beanは現在リクエストスコープにあります。Beanの関連コードは次のとおりです。
この種のリダイレクトを行うには、バックエンドJava呼び出しを使用するのが最善の方法ですか?そうでない場合は、使用するのが最善faces-context.xml
ですか?もしそうなら、どのように?私たちがここにいる間、誰かが私をFacesContext.getCurrentInstance()。getExternalContext()の使用法の良い読書リソースに導くことができますか?データcosで簡単なナビゲーションを行う方法についてのまともな例があります。
乾杯
jsf - EJB3.0 Bean を JSF2.0 バッキング Bean に注入する... 不可能ですか?
私は Weblogic 11g で JSF プロジェクトに取り組んでおり、最初の設計では JSF バッキング Bean を呼び出して EJB3.0 Bean を呼び出し、ビジネス ロジックとデータ アクセス呼び出しを実行します。EJB 参照をバッキング Bean に注入しようとすると、@EJB アノテーションがプロジェクトで機能しないようです。テストしているクラスにヒットするたびに、EJB のコンストラクターが呼び出されず、最終的に NPE が発生します。EJB3.0 Bean を JSF バッキング Bean に注入することは可能ですか? JSF バッキング Bean を介して EJB を呼び出す別の方法はありますか? ベストプラクティスは何ですか?
java - jsf で長いメソッド/クラスを避ける方法 (または避けるべき)
私は主に JSF ベースのプロジェクトでレガシー コードを扱っており、バッキング Bean には非常に長いクラスとメソッドがたくさんあります。
これは常に私を悩ませていますが、何ができるかを探すとき、ほとんどの場合、長いメソッドを n 個の小さなメソッドに分割することしか思いつきません。これにより、クラスが非常に長くなり、読みにくい場合もあります。
では、バッキング Bean を短く簡潔にするにはどうすればよいでしょうか。それとも、1 ページに 1 つの大きなバッキング Bean を保持しますか? ベストプラクティスはありますか?
これはjsfに直接関係しているのではなく、コントローラーでビューを「バックアップ」しているモデルに関係していると思います。したがって、一般的なアドバイスも役立ちます。
view - ビューからBackingBeanのプロパティを設定します(GETリクエストコンポーネントでアクションイベントはありません)
ViewA.xhtmlにバインドされたBeanAとViewB.xhtmlにバインドされたBeanBがあると想像してください。BeanAとBeanBは、Beanごとに1つの属性「Objectobj;」を持つバッキングBeanです。ゲッターとセッターで。
今、私はViewAで次のことを行っています。
これはうまくいきます!リストを反復処理すると、(commandLinkを介して)クリックしたオブジェクトがBeanBに設定されます。
問題:GETリクエストを処理する必要があるため、h:linkまたはh:outputLinkを使用する必要があります(ところで、違いはどこにありますか?)。ただし、そうすると、GETリクエストはアクションイベントを発生させないため、f:setPropertyActionListenerコンポーネントを使用できません。
アクションイベントがないため、GETリクエストを使用して、オブジェクトのIDをBeanBにパラメーターとして指定する必要があります。次に、BeanBはdaoを使用して、指定されたIDを持つオブジェクトを取得します。しかし、このサックス。ダオは使いたくない。だから私の特定の質問:
GETリクエストリンクのf:setPropertyActionListenerに相当するものは何ですか?ah:linkまたはh:outputLinkコンポーネントをクリックしたときにBackingBeanのプロパティを設定するにはどうすればよいですか?
解決策があるといいのですが、よろしくお願いします。