問題タブ [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.
jsf - 複数使用カスタムコンバーターとともにJSFページで、変換が失敗した無効なパラメーターのみを無視します
以下に示すように、JSF ページ<f:viewParam>
のタグ内に2 つのタグが含まれています。<f:metaData>
index.xhtml ファイル:
converter
それらのそれぞれは、属性で指定されたコンバーターに関連付けられています。
2つのパラメーター(userId
およびuserRoleId
userTable
entity
testManagedBean
マネージド Bean:
いずれかのプロパティで変換が失敗するuserId
とuserRoleId
、失敗したプロパティとともに他のプロパティもマネージド 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 つだけが実行されますか?
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
jsf-2 - f:viewparam が Bean に設定されていません
オブジェクトのリストがあり、各エントリにはオブジェクトの詳細ビューへのリンクがあります。リンクのコードは
そして元。結果のリンクは次のとおりです。
詳細ビューの Bean にはゲッターとセッターで定義されたパラメーターがあり、ページには f:viewparam も定義されています。
問題は、詳細 Bean の値が設定されないことです...
デバッガーで見たのは、リンクをクリックした後 (ページが読み込まれて selectData メソッドが呼び出される前だと思います)、パラメーターのゲッターが呼び出されますが、セッターは呼び出されません。
Bean は ManagedBean および CustomScoped です。
何が恋しいですか?
編集:
Bean (非常に簡単なもの):