問題タブ [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 に答える
1681 参照

jsf - 複数使用カスタムコンバーターとともにJSFページで、変換が失敗した無効なパラメーターのみを無視します

以下に示すように、JSF ページ<f:viewParam>のタグ内に2 つのタグが含まれています。<f:metaData>

index.xhtml ファイル:

converterそれらのそれぞれは、属性で指定されたコンバーターに関連付けられています。

2つのパラメーター(userIdおよびuserRoleIduserTableentitytestManagedBean

マネージド Bean:


いずれかのプロパティで変換が失敗するuserIduserRoleId、失敗したプロパティとともに他のプロパティもマネージド Bean に設定されず(この他のプロパティの変換は失敗する可能性が低いため、設定されることが期待されます)、両方のプロパティが設定されます。それらのヌルです。

たとえば、次のような URL を入力した場合、

/index.jsf?userId=100&userRoleId=12

次に、preRenderEvent()メソッド内の次のステートメント ( に関連付けられている<f:event>)、

が表示されますtrue : true

この場合、 の変換はuserId失敗します (値 100 はデータベースに存在しません) が、 の変換はuserRoleId成功する必要があり (ただし、そうではありません) 、null (データベースに存在する) であってはなりません。


同様に、次の URL、

/index.jsf?userId=1&userRoleId=120

再び表示されますtrue : true

前回と逆のケースです。userIdデータベースには存在しますが、存在しuserRoleIdません。


最後に、以下の URL、

/index.jsf?userId=1&userRoleId=12

を示していますfalse : false。この場合の両方のパラメーターの値は、データベース内のそれぞれのテーブルに存在します。

ConverterException変換の失敗は、言うまでもなくスローによって通知されます。


では、一方の変換が失敗したときに、両方のプロパティの値が null に設定されるのはなぜでしょうか? コンバーターの 1 つの変換が失敗した場合、コンバーターの 1 つだけが実行されますか?

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

jsf - f:viewParam が機能しない

GlassFish 3.1.2.2 で JSF 2.2.4 を使用しています。

私はこのバッキングビーンを持っています:

そしてこのビューtest.xhtml

を開く/test.html?id=123と、ID が0ではなくとして表示されます123<f:viewParam>なぜその仕事をしなかったのですか?

更新しました

GlassFish 4.0 をインストールしました。

JSF の Maven 依存関係:

faces-config.xml:

そしてtest.xhtml

しかし、ID は として表示され0ます。

テスト用 Maven プロジェクト: https://www.dropbox.com/s/qbc05vysspvt46l/jsf-spring-mybatis-master.zip

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

jsf-2 - f:viewparam が Bean に設定されていません

オブジェクトのリストがあり、各エントリにはオブジェクトの詳細ビューへのリンクがあります。リンクのコードは

そして元。結果のリンクは次のとおりです。

http://bla-bla.bla/cmn-web/view/cmn/billDetailView.xhtml?faces-redirect=true&phoneNr=41798009726&fromDate=2013-01-01&toDate=2013-01-31

詳細ビューの Bean にはゲッターとセッターで定義されたパラメーターがあり、ページには f:viewparam も定義されています。

問題は、詳細 Bean の値が設定されないことです...

デバッガーで見たのは、リンクをクリックした後 (ページが読み込まれて selectData メソッドが呼び出される前だと思います)、パラメーターのゲッターが呼び出されますが、セッターは呼び出されません。

Bean は ManagedBean および CustomScoped です。

何が恋しいですか?

編集:

Bean (非常に簡単なもの):