問題タブ [viewparams]

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 に答える
779 参照

java - 正確にはいつのセッターです呼び出された

以下の抜粋に示すように、 f:viewParamを使用して、以下に示すように xhtml ページにf:metadataセクションを定義しました。

.. cust-idパラメータの CustomerConverter クラスを宣言しました。プロパティ cust-id のコンバーター クラス getAsObject メソッドとバッキングBeanカスタマーフィールドのゲッター メソッドすべて、 UPDATE MODEL VALUESライフで呼び出されるカスタマーフィールドのセッター メソッドの前に呼び出されるPROCESS VALIDATIONS JSF ライフサイクル フェーズで呼び出されます。サイクルフェーズ。その結果、ゲッターが呼び出された時点で、フィールドはコンバーターによって適切に初期化されません。したがって、シーケンスは次のようになります (ここで、CustomerCEVController はバッキング Bean クラスです)。

[ PROCESS VALIDATIONS フェーズ開始 ]
[CustomerConverter#getAsObject が呼び出されました]
[CustomerCEVController#getCustomer が呼び出されました]
[ PROCESS VALIDATIONS フェーズが終了しました ]
[ UPDATE MODEL VALUES START ]
[CustomerCEVController#setCustomer が呼び出されました]

ログ出力の散在と登録したライフサイクル リスナーに基づいてシーケンスを報告しています。何か不足していますか?そうでない場合、顧客フィールドがアクセスされる前にコンバーターによって適切に設定されていることを確認するにはどうすればよいですか?

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

jsf - コンバーターにバインドされたf:viewParamの場合、なぜConverter#getAsStringが必要なのですか?

次のf:viewParam定義があるとします。

URLに「?cust-id = 2342」パラメーターを指定して目的のページに移動します。したがって、コンバーターでのgetAsObjectメソッドの役割は、バッキングBeanのCustomerフィールドを明らかにインスタンス化することです(たとえば、DBクエリベースを実行することによって) cust-id値について)。私にはあまり明確ではないのは、getAsStringメソッドが必要な理由とその使用方法です。これは、通常の場合のコンバーターでのgetAsStringの役割についての質問ではありません。つまり、 .xhtmlビューUI要素と、それらの役割が単純なバッキングBeanとの間のバインディングです。また、 f:viewParamを処理できることもここで読みました。GETパラメーターのUI入力要素としてですが、反対方向のコンバーターの役割は私には意味がありません。

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

validation - 検証が失敗したポストバック後に f:viewParam 値を保持する方法

シンプルなフォームの xhtml ページがあります。このページは、いくつかのデータ テーブルに使用されています。データ テーブルなどを指定するには、GET 要求パラメーターを使用します。xhtmlページがそれを受け取ります

次のようなナビゲーションルールで再び通過します

しかし、このようにxhtmlファイルで入力を使用すると

入力にテキストのないフォームを受け入れようとした後、ビュー パラメータを復元できません。パラメータを渡すために非表示の入力を使用しようとしました

、しかし、検証が前に実行され、itemsBean.page がまだ空であるようです。itemsBean は RequestScoped です。私が間違っていることは何ですか?どうすればパラメータを渡すことができますか?

時間を無駄にしていただきありがとうございます。

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

java - ui:viewParam に依存するインクルード

ビュー パラメータから指定された値に応じて、ページの一部 (この例ではフッター) を含めたいページがあります。

preRenderViewViewScopedでバッキング Bean を初期化しています

これは、データベースにクエリを実行して、含めるフッターの名前を取得します。これは、次のように使用されます。

これにより、常にページが不足しています。しかし、ページ名を手動で入力すると機能します。を に置き換えても同じui:includeですh:outputText

これは JSF のフェーズと関係があることと、その時点でui:includeはまだ値が設定されていないことを理解しています。(フェーズを読んで理解を深めることは、私の TODO リストに含まれています)。

疑問は残ります。どうすればそのようなことを成し遂げることができますか。Bean に viewParam を使用させ、データベースにクエリを実行し、その値をui:include?

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

jsf-2 - viewParam イベントがうまくいかない

URL から view-parameter をチェックし、Bean の init-method を呼び出してそのユーザーを取得する Web ページを作成しました。そのページのフィールドには、そのユーザーの情報が入力されます。

しかし、何かがうまくいかない。

マイ Facelets ページ:

そして UserBean.java:

が呼び出されていないためSystem.out.println(name)、Web ページが init を呼び出しているとは思えません。URL 適応なしで Web ページを開始すると ( http://localhost:8080/KwetterJSF/)、次のエラー メッセージが表示されます。

WELD-000049 beans.UserBean@3c836d3d で [メソッド] @PostConstruct public beans.UserBean.init(ComponentSystemEvent) を呼び出せません

パラメータ ( ) を追加するとhttp://localhost:8080/KwetterJSF/index.xhtml?user=Sjaak、次のようになります。

私はこれについてあまり経験がなく、自分で少し調べてもわかりません。誰かが解決策を知っていますか?

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

jsf - URLパラメータは含まれていません

のようなURLで開くJSFページがありますtest.xhtml?a=15&b=20

すべてのURLパラメータを次のページに渡す必要があるリンクがあります。

リンクをクリックすると、次のように表示されると思っていました。index.xhtml?a=15&b=20

しかし、URLには何も表示されません。私はincludeViewParams間違ったことを理解しましたか?

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

validation - JSF - viewParam に似た Bean プロパティの検証?

f:viewParam特定のプロパティが存在するかどうかを確認し、存在しない場合はメッセージを出力できるようなものはありますか?

たとえば、ユーザーがリダイレクトされるショッピング カート サイトがあります。カートはセッション スコープにあります。2 番目のサイトでは、この検証を使用したい場所に拡張カートを表示する必要があります。

たとえば、セッションに保存されるユーザーがアカウント サイトにアクセスするが、ログインしていない場合など、多くのユース ケースがあります。

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

ajax - JSFViewParam必須+AJAXブレークページ

下のページのコマンドボタンをクリックすると、ナビゲーションが失敗します。(ボタンをクリックすると、ページが更新され、URLパラメーターが削除され、インデックスページに移動する代わりに、必要なエラーメッセージが表示されます)

ただし、必要な属性を削除するか、f:ajaxタグを削除すると、ナビゲーションは正常に機能します。

com.sun.facesJSF2.1.13およびprimefaces3.4の使用。

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

jsf - JSF ViewParams が渡されない

ターゲット ページでバッキング Bean が異なるページからビュー パラメータが渡されないことがわかりました。製品パラメーターを test1.xhtml から test2.xhtml に渡すにはどうすればよいですか?

test.xhtml

test2.xhtml

ホルダー.java

Holder2.java

製品.java

製品コンバーター

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

jsf - URLパラメータが使用されていない場合にPOSTで再作成されたビュースコープのBean

xhtmlビューをサポートするビュースコープのJSF管理対象Beanがあり、 f:viewParamを使用してURLから1つのパラメーターを読み取ります。

ビューはユーザーにフォームを表示します。ただし、ユーザーがp:commandButtonを押してフォームを送信すると、ビュースコープのBeanが再作成されたように見えるため(これを確認するために@PostConstructアノテーションを追加しました) 、 f:viewParamから読み取られたインスタンス変数を覚えていません。 (以下のコードのinvId)。

私は元々、URLパラメーターを含むGETを使用してビューに移動しましたが、ユーザーがp:commandButtonを押したときに送信されるPOSTメッセージにはURLパラメーターが含まていません。したがって、JSFランタイムがPOSTでURLパラメーターを認識しない場合、これは別のビューであると見なされ、JSF管理対象Beanを再作成していると思います。ビュースコープをセッションスコープに変更すると、コードは機能します。

コードは次のとおりです。

見る

バッキングビーン

アップデート

これは、URLパラメータとはまったく関係がないことがわかりました。以下のBalusCのアドバイスに従って、ビューが使用していたc:whenタグを削除し(同じ効果を得る代わりにレンダリングされた属性に依存)、ビュースコープのBeanが再作成されなくなり、invIdフィールドが適切に保持されるようになりました。