私はSun JSF 2.0を使用しており、javax.faces.event.PhaseListener
を拡張したフェーズリスナーを作成しています。私は、ソースURI、ターゲットURI、合計時間などを記録することができます。しかし、これまでManagedBeanと、そのクライアントイベント中に呼び出される対応するメソッドを記録することができませんでした。これどうやってするの?呼び出されたマネージドBeanアクションをPhaseListenerに記録する
3
A
答えて
11
入力コンポーネントは、同期要求の場合は要求パラメータ名として、非同期(ajax)要求の場合は要求パラメータ値javax.faces.source
要求パラメータとしてクライアントIDを送信します。リクエストパラメータをループし、この情報に基づいてによってUICommand
コンパニオンが解決可能かどうかを確認し、それに応じて処理してください。
キックオフ例:日は一年以上前に、Oracleによって引き継がれている
@Override
public void beforePhase(PhaseEvent event) {
FacesContext context = event.getFacesContext();
if (context.isPostback()) {
UICommand component = findInvokedCommandComponent(context);
if (component != null) {
String methodExpression = component.getActionExpression().getExpressionString();
// It'll contain #{bean.action}.
}
}
}
private UICommand findInvokedCommandComponent(FacesContext context) {
UIViewRoot view = context.getViewRoot();
Map<String, String> params = context.getExternalContext().getRequestParameterMap();
if (context.getPartialViewContext().isAjaxRequest()) {
return (UICommand) view.findComponent(params.get("javax.faces.source"));
} else {
for (String clientId : params.keySet()) {
UIComponent component = view.findComponent(clientId);
if (component instanceof UICommand) {
return (UICommand) component;
}
}
}
return null;
}
+0
それは働いた...ありがとう – Hussain
関連する問題
- 1. commandButtonはマネージドBeanのアクションを呼び出さない
- 2. マネージドBeanメソッドを呼び出すと、NPE
- 3. マネージドBeanコンストラクタはいつ呼び出されますか?
- 4. ページを変更せずにマネージドBean関数を呼び出す
- 5. ページのロード時にマネージドBeanメソッドを呼び出す
- 6. thymeleafボタンをクリックしたときにマネージドBeanのメソッドを呼び出す方法
- 7. アクションに呼び出されるたびにintに追加されますか?
- 8. JSFマネージドBeanをCDIマネージドBeanに移行する
- 9. すべての呼び出しを.tranceive()に記録する
- 10. jsfマネージドBeanメソッド(AjaxBehaviorEventリスナーハンドラ)を呼び出すためにjquery ajaxを使用する
- 11. ASP.NET MVC:他のアクションによって呼び出されるアクション
- 12. Eclipse IDEで呼び出されるアプリケーションのリストを記録する
- 13. アクションが呼び出されたことをアサートする方法
- 14. WPF ProgressBarを呼び出されたアクションから更新する
- 15. php artisanの呼び出しを記録するには?
- 16. プログラムの実行中にメソッド呼び出しを記録する
- 17. jersey.servlet.ServletContainerマネージドBeanからSpringマネージドBeanを取得する方法?
- 18. HP Load Runnerが記録用のブラウザを呼び出さない
- 19. flatMapCompletableが指定されたアクションを呼び出さない
- 20. 検証アトリビュートから指定されたアクションを呼び出す
- 21. エリクサー/フェニックスは、ネストされた更新アクションを呼び出す
- 22. WindowsのプログラムのDeviceIoControl呼び出しを記録する方法
- 23. マネージドBean JSFプロジェクト
- 24. JSFのマネージドbean
- 25. アプリで呼び出されたすべてのメソッドをXposedでログに記録する
- 26. Wordpressフォームが提出されたときにrailsアクションを呼び出す
- 27. ポートレット内のJSFマネージドBeanからリモートEJBメソッドを呼び出すときにエラーが発生する
- 28. backBarButtonItemはアクションを呼び出さない
- 29. フォームで呼び出されないアクションを作成する
- 30. アクションが呼び出されたときにIBM BPMがタスクを作成する
注意。 – BalusC