問題タブ [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 バッキング Bean 間でエンティティを共有する方法は?
JSF 2.1 / Java EE アプリケーションをモジュール化したいと考えています。複数のモジュールで構成されるページがあります。各モジュールは個別の JSF バッキング Bean を使用する必要があります。これらのモジュールの一部は、同じエンティティのデータを表示および変更する必要があります。
私はすでにいくつかのアプローチを試みましたが、今のところ満足していません。これを行う最善の方法は何でしょうか?
すべてのモジュールは同じエンティティを使用し、データが変更された場合は (おそらく) 他のバッキング Bean に通知する必要があります。
私がすでに試したいくつかのアプローチへのコメント:
- インターフェイスを介してコンポーネント (XHTML) にエンティティを渡すと、バッキング Bean にも渡されません。
- リクエスト パラメータから ID を読み取って Bean の postContruct メソッドにエンティティをロードすることは、一般的に推奨されず、「viewParam」アプローチの使用が推奨されます。
- 「viewParam」を使用することは、Bean の作成後にエンティティを持つことほど良くありません (私の postConstruct で)。Bean のセッターが呼び出されるタイミングがわかりません。
jsf-2 - f:viewParam の必須フラグは preRenderView の呼び出しを妨げない
私のviewParamsのいくつかは必須であり、欠落している場合はFacesMessageが表示されます。ただし、システム イベント preRenderView は空の検索パラメータで実行されるため、デフォルトのデータ結果が返されます。必要な属性に違反したときに preRenderView 登録メソッドが実行されるのを防ぐ方法はありますか?
jsf - f:param がパラメーターを渡さないか、パラメーターが設定されない
h:linkwithを使用しincludeViewParams=trueてリスト ページとビュー ページの間を移動し、ビュー ページの URL をブックマーク可能にしますが、機能しません。以下は私のコードの関連部分です:
layout.xhtml (私のテンプレート):
Articles.xhtml (私のリストページ):
View_Article.xhtml (私のビューの詳細ページ):
詳細情報: 私は JSF 2.2、ocpsoft 書き換えフィルター、primefaces ライブラリを使用しており、ArticleController.javaセッション スコープです。
私は次のことを試しました:
1-私は使用しh:commandLinkました; これで、ナビゲーションは機能しましたが、URL に view-params が含まれていませんでした
Articles.xhtml:
ArticleController.java: ...
URLはあるとhttp://localhost:8080/testApp/en/View_Article?id=1思っていたのですが、`http://localhost:8080/testApp/en/View_Article
2-挿入http://localhost:8080/testApp/en/View_Article?id=1しましたが、どちらの場合も機能しました。
jsf-2 - 同名の f:viewParam バインディングを介して f:param からの値で更新された Bean
このコードで:
commandLink を使用して送信すると、UPDATE_MODEL フェーズで f:paramの値を使用して myBean.aParameter が viewParam (デバッグで表示) によって更新されます。
これは正常ですか?
はい、viewParam と param が同じ名前であることはわかっています。選択の余地はありません。
Mojarra 2.1.27を使用しています
jsf - 複合主キーを持つエンティティのコンバーターに複数のビュー パラメーターを渡す
複合主キーを持つエンティティのコンバーターをどのように作成しますか?
`\edit_representative.xhtml?emp_id=12345&project_id=45 のような URl でエンティティを編集したい
私はOmnifacesを使用しているので、単一の主キーにはこのようなものがあります
しかし、従業員が取り組んでいる project_id をコンバーターに渡すにはどうすればよいですか
編集
BalusCの回答に基づいて、2番目のオプションを使用し、projectRepConverterコンバーターに次のものを用意しました
そしてフェイスレットで
ajax - SelectOneMenu タグの PrimeFaces Ajax リスナーが viewParam で機能しない
selectOneMenu ajax リスナーを使用しようとしていますが、ページがパラメーターを受け取ると機能しません。
私のテストでは、PrimeFaces ShowCase ページに示されているのと同じ例を使用しましたが、私のページは viewParam と viewAction によってもパラメーターを受け取ります。
selectOneMenu が初めて変更されると、アクション リスナーがトリガーされ、その後動作を停止します。
マイページ:
そして豆:
重要:
メタデータ、viewParam および viewAction タグを取り出し、init() メソッドを @PostConstruct でマークすると、サンプルは完全に機能しますが、ページ パラメーターが必要です。
私はそれを解決するためにあなたの助けを求めます.