問題タブ [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.

0 投票する
1 に答える
993 参照

jsf - jsfのビュースコープでAjaxがサポートされていません

私はjsfが初めてです。ajax と viewscope Bean での作業に問題がありました。

これが私のコードです:

index.xhtml:

Bean2.java

このページには、2 つの入力ボックスとコマンド ボタン "Test" が表示されます。最初の入力ボックスに値を入力して [テスト] をクリックしても、何も起こりません (エラーも発生しません)。

しかし、私がBeanをSessionscopedとして作成すると、正常に動作します。

これを案内してください。

0 投票する
1 に答える
810 参照

jsf - アプリケーション スコープ Bean のセッターが値の設定に失敗する

フォーム全体を送信する前に画像を ajax アップロードしてプレビューする機能を備えたフォームで Primefaces を使用してページを作成しています。

これを達成するために、メインフォームの外側にダイアログを作成しました:

メインフォーム内にはp:graphicImage、アップロードしたばかりの画像を表示するコンポーネントと、ダイアログを表示するボタンがあります。ページはビュー スコープ Bean ( PageBean) によってサポートされていますが、値 Bean に渡すStreamedContentp:graphicImageは、セッション スコープまたはアプリケーション スコープである必要があります (メソッドが複数回呼び出されるため)。ImageBeanそこで、この目的のためだけに2 つ目のアプリケーション スコープ Bean ( ) を作成しました。

のコードImageBean:

次の部分ですfileUploadListener。アイデアは単純です — PageBean(フォーム送信時に後で保存するため) の対応するフィールドを設定し、 ImageBean(部分的な更新後に表示するために) メインフォームの一部を更新します:

ここで奇妙なことが起こります。メソッド内setImage()ではすべて問題ありません - フィールドが設定され、ゲッターは正常に動作します。しかし、その後ページを更新すると、imageBean.getImage()内部imageBean.imageStreamedContent()は null を返します。

より正確 — setter が呼び出されなかったか、Bean の別のインスタンスで呼び出されたかのように、古い値を返します。String別のフィールドでチェックしました。ImageBeanコンストラクターで初期化し、ハンドラーで別の値でセッターを呼び出し、メインフォームの一部を更新しました。同じこと: コンストラクターからの古い値。

Bean のライフサイクルまたはスコープ固有の何かが欠けていると思います。それとも、このタスクを実装するためのより簡単な方法がありますか?

0 投票する
1 に答える
837 参照

jquery - リッチフェイス 4 :RF ショーケースのようなデータテーブル スタイル効果がスコープ ビューで機能しない

ここに示すように、jsfデータテーブルでスタイリングを試みています:

ページの最初の読み込み時に機能しています。しかし、(前に示したリンクで説明したように) ajax 呼び出しで列を並べ替えると、スタイリングが消えます。リフレッシュすれば、スタイリングが戻ってきます。

スコープをリクエストスコープに入れた場合。スタイリングは機能していますが、関数の並べ替えは機能していません。よくわからないこと。(その現象の説明に興味があります...)

だから私はjqueryが関係していることを理解していますが、「データテーブルの値をソートするときにスタイリングが消えないようにしないでください」と伝える方法が見つかりません

おそらくreRenderと関係がありますか?

BalusC、何か考えはありますか?:)

どうもありがとう、みんな、

良い1日を。

0 投票する
0 に答える
203 参照

jsf - viewscoped Bean アクションは同じビューを返すことができません

ビュー スコープ Bean に問題があります。xhtml にコマンドボタンがあり、マネージド Bean に関連付けられたアクションがあり、同じビューを再度レンダリングすることになっています。アクション メソッドは問題なく返されますが、ビューがレンダリングされず、ブラウザーで「localhost を待機しています」というメッセージが表示されたままになります。なぜか bean の @PreDestroy メソッドと、その中に注入された ejb の @PostConstruct メソッドが複数回呼び出されます (無限のようです)。Bean を Sessionscoped に変更すると、すべて正常に動作します。私はnetbeans 7.2.1を使用しており、JSFフレームワークが追加されたWebアプリケーションに取り組んでいます。

xhtml 部分:

バッキング Bean:

と ejb

この Bean は、セッション スコープではなく、ビュー スコープにする必要があります。ここでviewScopedの何が問題なのですか?

私はこの質問を見てきました: @ViewScoped Managed Bean は postback 中に何度もロードされますが、解決策がうまくいきません。

ありがとう!

0 投票する
0 に答える
1660 参照

jsf-2 - Bean が破棄され、新しいページをレンダリングするために POST した後、ブラウザーの更新時に @ViewScoped Bean が参照されるのはなぜですか?

まず、最近追加され、OmniFaces 1.6 でリリースされた OmniFaces CDI @ViewScoped を使用しています。アプリで OmniFaces CDI @ViewScoped を使用できることを非常に嬉しく思いますが、質問があります。

(TomEE 1.6 スナップショット) サーバー ログにいくつかの NullPointerException があることに気付きました。また、OmniFaces CDI @ViewScoped でマークされた Bean を使用/参照するページをテストしているときに、NullPointerException も経験しました。NullPointerException は、通常、次のようなことをすると発生します。

(1) CDI @ViewScoped Bean を参照/使用するページを「レンダリング」します。

(2) 「view」に存在する (PrimeFaces) commandButton/Link (以下) をクリックすると、commandButton/Link action="..." が @ViewScoped Bean の破棄を担当します。

(3) 上記の手順 2 の直後に、自分またはエンドユーザーが「ブラウザーの更新」 (Google Chrome の F5 キー) を実行すると、何らかの理由で、CDI @ViewScoped Bean (上記の手順 1 で参照) が再構築されます。 actionListener=#{viewScopedBean.methodToPrepareStep1View()} または action="#{viewScopedBean.methodToPrepareStep1View()}" は「ブラウザの更新」ボタン/リクエストによって「呼び出されない」ため、Bean は再構築されます...正しく。

(4) したがって、@ViewScoped Bean メンバーは「null」であり、ユーザーが「予期せず」F5 を押すか、「ブラウザーの更新」を行うと、NullPointerException が発生します。

注: 状態保存 = サーバーおよび (HTTP) フィルターは、次の方法でブラウザーに jsf/xhtml ページをキャッシュしないように指示しています (これはずっと前に、ここで stackoverflow.com で BalusC から学びました)。

また、次の他の/関連する投稿を読みました。

JSF 2.0 View Scopeの戻るボタンは安全ですか?

ウィザード パターンの JSF 2.0 で使用するスコープは?

ViewScoped は RequestScoped のように機能します - なぜですか?

フォームをクリアするjsf

これは、(2 歳の JSF 開発者として) 私の設計ミスによるものですか?

CDI @ViewScoped Bean を参照するすべての xhtml ページをテストし、上記の手順を繰り返してから、コード内のすべての場所で NullPointerException を処理する必要がありますか?これは「ブラウザーの更新」が原因ですか? これがこれを解決する唯一の方法ですか、それとも CDI @ViewScoped Bean が破棄された後のブラウザの更新によって引き起こされる NullPointerException を処理 (または回避) するためのより推奨される方法はありますか?

アドバイス/確認してください。ありがとう。

編集: (2) 上記の「正しい」説明と、この問題を再現するのに役立つコード。

0 投票する
2 に答える
4868 参照

jsf - @ViewScoped 使用時の java.io.NotSerializableException

JSF で使用する@ViewScopedと、次の例外が発生します。

Bean に実装させることで解決できますSerializable。ただし、理屈はわかりません。この例外がビュー スコープでのみ発生し、他のスコープでは発生しないのはなぜですか?