問題タブ [view-scope]
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.
jsf - 最初のページが 2 番目のページと同じマネージド Bean を使用する場合、f:viewParam は URL にクエリ文字列のみを渡しますか?
たとえば、検索ページと結果ページを使用してみましょう。検索ページと結果ページを処理する ViewScoped Bean がある場合、次のようなものを使用して URL を介してパラメーターを渡すことができます。
search.xhtml
バッキングビーン
results.xhtml
ここで、2 つのマネージド Bean があるとします。1 つは検索ページ用で、もう 1 つは結果ページ用です。
クエリ文字列は 2 つの異なるマネージド Bean を使用して URL に組み込まれますか? それとも、両方のページに同じマネージド Bean を使用する場合にのみ機能しますか?
アップデート
<f:viewParam>
search.xhtml と results.xhtml のページに同じものがありますが、唯一の違いは、results.xhtml では search.xhtml とf:viewParam value
は異なる支援者を指していることです。これを行うと、URLを介してパラメーターが渡されません。f:viewParam value
results.xhtml で search.xhtml で使用しているのと同じバッカーを指すと、パラメーターは URL を介して正常に渡されますが、必要な結果バッカーに値が存在しません。results.xhtml ページに sが重複している場合f:viewParam
(1 つは検索バッカー、もう 1 つは結果バッカー)、すべて正常に動作します。f:viewParam
これを行う正しい方法は、両方のマネージド Bean で同じ を 2 つ持つことですか?
例:
results.xhtml - パラメータは URL を介して渡されますが、resultsBacker では使用できません
results.xhtml - URL を介して渡されるパラメーターはありません
results.xhtml - パラメータは URL を介して渡され、resultsBacker で利用できますが、扱いにくいようです。これはこれを行う正しい方法ですか、それともまだ何か不足していますか?
jakarta-ee - JSF2.2 lifeCycle の CDI の ViewScoped
@Named アノテーションを使用して javax.faces.view.ViewScoped で @ViewScoped を使用しようとしていますが、何らかの理由でアクションを呼び出してページの一部を更新するたびに、Bean が再度インスタンス化され、期待どおりの結果が得られません結果!@ManagedBean と viewScoped(javax.faces.beans.ViewScoped) を使用すると、正常に機能します。
別の質問は、Bean が複数回インスタンス化されるのはなぜですか? アプリケーションサーバーの動作が原因ですか??
これが私のxhtmlです:
ここに私のバックビーンがあります:
これは、ページを更新して検索ボタンをクリックしたときのコンソールの結果です。
ありがとうございました
jsf-2 - JSF 2 View Scope の状態保存で、注入されたプロパティと ejb が正しく保存されない
現在、JSF 2.0 (MyFaces) で Websphere 8.5 を使用しています。@ViewScoped Bean の状態保存 (サーバー モードとクライアント モードの両方) が原因で、いくつかの問題に直面していました。私は次の豆を持っています
私のテストページには
状態の保存時に両方とも失敗します。
SessionBean の場合、i = 1 で BrokenBean を使用してページに入り、別のページで i = 2 を設定すると、BrokenBean を使用するページは引き続き i = 1 を表示します。
MyEJB の場合、これは単に「*Local*MyEJB」と呼ばれるサーバー生成クラスに NotSerializableException を与えるだけです。ここで、* は正確に覚えていない文字を表します。
私は機能する回避策を使用しましたが、それは「透過的であると仮定する」JSF の不必要な複雑さのようなものです。きれいに見える他の回避策はありますか?
私はこのクラスを持つことになります:
richfaces - 選択リストの右側の値を動的に入力する方法
rich:popuppanel コンポーネントを使用していますが、ピックリストに値を入力する際に問題があります。
私の要件は以下の通りです。
拡張データ テーブルに入力する
チェックボックスを使用して行を選択 - その行のユーザー ID がバッキング Bean に渡されます
割り当てボタンをクリック
ポップアップ パネルが開き、すべてのユーザーと割り当てられたユーザーを含む選択リストが表示されます
問題は、getAllUsers() 呼び出しがすべてのユーザーを返し、選択リストの左側が適切に入力されることです。しかし、 getAssignedUsers() はまったく呼び出されません。したがって、選択リストの右側は常に空です。
XHTMLコードは以下の通りです。
私の理解では、問題は Bean スコープによるものです。私の Bean はビュー スコープであるため、Bean が初期化されると、左側と右側の両方のパネルのデータが事前に入力されます。
init() 自体にハードコードされた ID を指定して setAssignedUsers() を呼び出してみました。それは正常に動作します。必要なのは、ID を動的に渡し、getAssignedUsers() を呼び出す方法です。
これを実行する方法と、ポップアップが開いたときにピックリストを再レンダリングする方法を提案してください。
ありがとう!
jsf-2 - Primefaces タブ用のカスタム JSF スコープ「TabScope」
マスター タブから行を選択すると動的にタブが作成され、メイン アプリケーション ページを離れずに Primefaces TabView に追加される動的タブを作成しようとしています。マスター タブにマスター ページ (例: countryMaster.xhtml) を使用し、詳細タブに選択した各行の詳細ページ (例: countryDetail.xhtml) を再使用しています。
ViewScope に基づいてカスタム「TabScope」カスタム スコープを作成したいと思います。ここで、詳細タブの tabId をバッキング Bean にバインドし、ViewMap に格納できます。
- どうすればこれを達成できますか?
- これは可能ですか?
- バッキング Bean インスタンスを使用しているタブの tabId を取得するにはどうすればよいですか?
ありがとう!!
元:
java - @Named @ViewScoped は java.io.NotSerializableException を与える
多くの記事を見つけましたが@ViewScoped
、java.io.NotSerializableException
私の場合は何も役に立ちませんでした。おそらく、私はCDI@ViewScoped
を使用しており、ほとんどの古い質問は@ManagedBean
. 再生:
次の注釈が付いたプレゼンテーション モデルがあります。
デプロイはうまくいきます。また、この PM を使用してページにアクセスすると、すべて問題ありません。しかし、何かを変更した後にプロジェクトを再デプロイすると、次のようになります。
@SessionScoped または @Requestscoped を使用すると、これは発生しません。他のスレッドから、web.xml で STATE_SAVING_METHOD をサーバーに設定するヒントがあります。クライアントに設定されていないため、デフォルトである必要があります。しかし、私はそれを設定しました:
しかし、それでも同じエラーです。誰かが私に何を試すのを手伝ってくれますか?
jsf - jsf viewscoped Bean - すべてのページ(タブ)に値を設定する
申し訳ありませんが、これは非常に基本的なことのように聞こえるかもしれませんが、JSF viewscoped Bean を使用して、同じブラウザー ウィンドウ内のすべてのタブに明示的な値を設定する方法を誰かが説明できれば幸いです。
いくつかの記事または作業サンプルを案内してください。
親切に助けてください、事前に感謝します
アップデート:
auth-page.xhtml
上記のコードの値「activityEditorManagedBean.selectedActivityBean.title」は、viewscoped Bean 変数値ですが、開いているすべてのタブで同じ値を持ちます。