問題タブ [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 - 異なる種類のJSFマネージドBeanを区別する
私は最近、Neil Griffinがさまざまな種類のJSFマネージドBeanを区別することからこの記事を読み、自分のアプリケーションでのさまざまなBeanの区別について考えさせられました。要点をすばやく要約するには:
モデルマネージドBean:このタイプのマネージドBeanは、MVCデザインパターンの「モデル」の問題に関与します。「モデル」という言葉を目にしたときは、DATAと考えてください。JSFモデルBeanは、プロパティをカプセル化するゲッター/セッターを備えたJavaBeanデザインパターンに従うPOJOである必要があります。
Managed-Beanのバッキング:このタイプのManaged-Beanは、MVCデザインパターンの「ビュー」の問題に関与します。バッキングBeanの目的は、UIロジックをサポートすることであり、JSFビューまたはFaceletコンポジションのJSFフォームと1:1の関係にあります。通常、ゲッター/セッターが関連付けられたJavaBeanスタイルのプロパティがありますが、これらはビューのプロパティであり、基になるアプリケーションデータモデルのプロパティではありません。JSFバッキングBeanには、JSFactionListenerメソッドとvalueChangeListenerメソッドも含まれる場合があります。
Controller Managed-Bean:このタイプのManaged-Beanは、MVCデザインパターンの「Controller」の問題に関与します。コントローラBeanの目的は、ある種のビジネスロジックを実行し、ナビゲーション結果をJSFナビゲーションハンドラに返すことです。JSFコントローラーBeanには通常、JSFアクションメソッドがあります(actionListenerメソッドはありません)。
マネージドBeanのサポート:このタイプのBeanは、MVCデザインパターンの「ビュー」に関する1つ以上のビューを「サポート」します。典型的な使用例は、複数のJSFビューに表示されるJSF h:selectOneMenuドロップダウンリストにArrayListを提供することです。ドロップダウンリストのデータがユーザーに固有のものである場合、Beanはセッションスコープに保持されます。
ユーティリティ管理対象-Bean:このタイプのBeanは、1つ以上のJSFビューにある種の「ユーティリティ」機能を提供します。この良い例は、複数のWebアプリケーションで再利用できるFileUploadBeanです。
これは私にとって理にかなっており、過去数時間、コードをリファクタリングしていて、ユーザーログインに関して次のことを思いついた。
これAuthenticationController
は、ControllerManaged-Beanの例です。これはリクエストスコープであり、ユーザー名とパスワードを設定するための2つのゲッターとセッター、および2つのナビゲーション方法を備えauthenticate
ておりlogout
、ログインに成功するとプライベートエリアに移動するか、ログアウトするとメインページに戻ります。
これUserBean
は、サポート管理対象Beanの例です。これはセッションスコープでありUser
、ゲッターとセッターを備えたクラスのインスタンス(認証されていない場合はnullになります)を備えています。
はAuthenticationController
、このユーザーを管理プロパティ(@ManagedProperty(value = "#{userController.user} private User user;
)として持っています。認証が成功すると、AuthenticationController
は管理プロパティを、ログインに使用された対応するユーザー名を持つ実際のユーザーインスタンスに設定します。
User
クラスにグループ名のリストが含まれている場合、新しいBeanはすべて、ユーザーを管理プロパティとして取得し、必要なデータ(たとえば、グループメンバーシップなど)を取得できます。
この方法は、関心の分離に関して進むための適切な方法でしょうか?
jsf-2 - GET パラメータ ビュー スコープ Bean
JSF2/richfaces 4 プロジェクトに奇妙な影響があります。viewscoped Bean と datascroller を使用して、バッキング Bean からいくつかのデータを表示します。Bean はビュースコープであり、figureId
パラメーターを渡すためにpreRenderView
イベントを発生させます。
正常に表示されますが、データスクローラーの 2 番目のサイトをクリックすると、次の行で nullponter 例外が発生します<f:event type="preRenderView" listener="#{pointEdit.init}" />
。
私の豆:
新しいデータをインポートする前は、テスト フィギュアで問題なく動作していました。figureId GET パラメータが init 関数で見つからないのはなぜですか? 私のテストデータ(5桁)では、これで問題が発生したことはありません.
アップデート:
jsf-2 - 複合コンポーネントのバッキングBeanの場所
JSF2ページを複合コンポーネントに分割しようとしています。そこで、複合コンポーネントを論理ファイルツリーに配置することにしました。例えば:
WebContent / resources / components / page1 / component1.xhtml
関連するBeanは
Javaリソース/src/components/page1/component1.java
そのパッケージはこれcomponents.page1
です。
この例では、component1.xhtml
が検出されてレンダリングされていますが、Beanがサーバーによって検出されていません。
サブパッケージを使用しない場合:
WebContent / resources / page1 / component1.xhtml
Java resources / src / page1 / component1.java
したがって、クラスがパッケージに含まれpage1
ている場合、それは機能します。
複合コンポーネントBeanとサブパッケージに問題はありますか?
MyFaces 2.0、Tomcat 6、およびEclipseを使用しています。
jsf-2 - リスト内の各アイテムのバッキング Bean メソッドから itemDisabled を設定します
ラジオボタン リストがあり、バッキング Bean メソッドの結果に従っていくつかの項目を無効にしたいと考えています。
これは正しい方法ですか?つまり、このコードはリストからcheckIncompatible(x)
それぞれを呼び出し、その項目を有効/無効に設定するか、それとも一度だけ設定しますか?x
selectItems
すべてのボタンを有効または無効にすることができただけで、メソッドが一度しか呼び出されないのではないかと疑っています。または、私のコードの残りの部分は、私が信じたいほど完璧ではありません。そして、それを修正するには、はるかに長い質問が必要になります。
java - 共有/ユーティリティ バッキング Bean を作成するには?
ページの特定の部分を共有するいくつかのページがあります。たとえば、それらのユーザーを検索する機能を持つすべてのユーザーを表示するチェックボックスのグループなどです。そのため、UI 部分を facelet にグループ化して、他の部分に含めることができるようにすることを考えています。ページ、およびサーバー側の部分については、そのページのメソッドとプロパティを含む sessionScoped Bean を作成することを考えていますが、このアプローチについてどう思いますか? アドバイスしてください、ありがとう。
更新:重要な懸念事項があります。その Bean のメソッドを同期して、異なる要求に対して異なる値を返すようにする必要があります。つまり、異なる要求に対して同じ結果を返さないということですか?
java - バッキング Bean の適切な使用
はい、バッキング Bean に関する質問を検索したところ、多くの質問が見つかりました。私はそれらを読み、その一部を理解しましたが、別の質問をする必要があります。
JSF MVCパターンのために、バッキングBeanが必要であることを理解した後。バッキング Bean がモデルです。したがって、フォーム、画像、およびログイン ボックスを表示するページがある場合、バッキング Bean には、ビューで公開または変更する必要があるデータの getter/setter ペアがあります。また、バッキング Bean には、フォームの送信時やログイン時に何が起こるかなど、これに関連するメソッドもあります。
私の質問は、上記のステートメントが正しいかどうかです。上記のコンポーネント用に作成するバッキング Bean の数は、コードの量に依存しますか?
このページのすべてのコンポーネントのメソッドとゲッター/セッターのペアを公開する 1 つのバッキング Bean は、3 つのバッキング Bean を作成するのと同じように、正当で「正しい」(つまり、私が何も間違っていないことを意味します) でしょうか。コンポーネントごとに 1 つでも問題ありません。
要するに、ページごとに 1 つのバッキング Bean を作成するのではなく、いつ分離する必要があるか、またその論理的な部分を経験することでしょうか? ある人がページのコンポーネントごとにバッキング Bean を作成したと聞きましたが、最終的に小さなクラスがたくさんできたようです。
誰かが私を確認して修正できれば、非常に感謝します。
javascript - コマンド ボタンのクリック時に Java スクリプトでバッキング Bean の値を取得する方法
これを行うのを手伝ってもらえますか?コマンド ボタンをクリックすると、javascript でバッキング Bean から値を取得しようとしています。
これは私のjsfコマンドボタンです
これは私のJavaScript関数です
私の Bean は、mystring 変数に保存している文字列を返しますが、警告すると null 値が返されます。誰かがそれを手伝ってくれるなら、それは素晴らしいことです。前もって感謝します。
jsf - 含まれているJSFへのJSFBeanのバインド
私はこれで私のロープの終わりにいます。私はJSFを初めて使用するので、これはおそらく多くのことについての私の誤解です。
ページに特定のタイプを渡します。フォームの特定のフィールド/基準が表示され、単一の検索があるため、Beanがすべてをバックアップします。
myPage.jspx内に私は持っています:
onsubmit = "alert('hi');"ですが、機能しません。フォーム要素の属性として機能します。
最も紛らわしいのはそれだと思います
myPage.jspxのフィールドで機能します
アクション(ボタンの属性)が機能しないのはなぜですか?
jsf - jsf 1.2 にバッキング Bean の値を動的に含める方法
こんにちは、私は次のコードを持っています
creatPage1.jsp
私はupdatePage1.jspを持っています
(ui:include または jsp:include を介して) インクルードを実行し、値を動的に渡すことができるようにしたいと考えています (基本バッキング Bean は createPage または updatePage になります)。
したがって、結果は
Page1.jsp
jsfでこれを行う最良の方法は何ですか?
jsf - JSFバッキングBeanからのファイルダウンロードを提供するにはどうすればよいですか?
JSFバッキングBeanアクションメソッドからファイルのダウンロードを提供する方法はありますか?私はたくさんのことを試みました。OutputStream
主な問題は、ファイルの内容を書き込むために応答を取得する方法がわからないことです。でそれを行う方法を知っていますServlet
が、これはJSFフォームから呼び出すことができず、新しいリクエストが必要です。
OutputStream
現在の応答をどのように取得できFacesContext
ますか?