問題タブ [omnifaces]
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-2 - OmnifacespostInvokeActionリスナーメソッドが2回呼び出されるのはなぜですか
私はオムニフェイスを使うのは初めてです。私が集めた小さなことから、postInvokeActionは、jsf preRenderViewイベントよりも、flashscopeでオブジェクトを処理するときに使用するのに適した選択肢です。しかし、私が気付いたのは、listenerメソッドが2回呼び出されていることです。preInvokeActionはbeforeフェーズリスナーに類似しており、postInvokeActionはPhaseID.INVOKE_APPLICATIONに相当するafterフェーズリスナーに類似しているため、対応するイベントに対して1回だけ呼び出す必要があると感じました。これは正しいです?親切に説明してください。
私は現在、Mojarra2.1.17とOmnifaces1.3で実行しています。
返信をお待ちしております!
layout1.html
samplepage2.html
SampleTest.java
java - FullAjaxExceptionhandler は javax.el.ELException または java.lang.Throwable のみをキャッチします
FullAjacExceptionHandler は、javax.el.ELException または java.lang.Throwable のみをキャッチできます。また、Throwable は javax.el.ELException よりも優先されます。マネージド Bean によってスローされた特定の例外を明示的にキャッチする必要があります。ただし、ELException は明らかに根本原因の例外 (つまり、LoginFailedException) をラップします。
私は JSF 2 (MyFaces 2.1.10)、Spring EL リゾルバー (Spring マネージド Bean)、el-api-2.2、glassfish el-impl-2.2 を使用しています。
エラーは次のとおりです。
LoginFailedException は単純なカスタム例外です。助けていただければ幸いです。前もって感謝します。
編集:実験が行われました:
LoginFailedException がスローされたときに呼び出される/使用されるエラー ページを確認するために、3 つのエラー ページを作成しました。XHTML エラー ページには、どれがどれであるかを識別するヘッダー文字列を除いて、まったく同じコードが含まれています。web.xml エラー エントリは次のとおりです。
catchAllThrowable.xhtml が使用されます。私が(web.xmlでコメントアウト)Throwableを削除すると、ELException.xhtmlが使用されます。ELException を削除すると、例外は loginError.xhtml ではなくコンテナー (tomcat) によって処理されます。
これで私のケースが明確になることを願っています。
アップデート:
私は現在、AJAX呼び出しを使用してフォームを送信しています(これがハンドラーの目的であると思います)。web.xmlで3つのエラーハンドラーページすべてがアクティブになっています(Throwable、ELException、LoginFailedException):
Throwable はスキップされ、ELException が一致しました (elException.xhtml がレンダリングされました)。まだ LoginFailedException をゼロにすることはできません。
jsf - OmniFaces ExtensionlessURLS、Mojarra と MyFaces の動作の違い
Mojarra で発生していた潜在的なパフォーマンスの問題を発見した後、最近、アプリケーションを Mojarra 2.1.7 から MyFaces 2.1.10 実装で実行するように切り替えました。
私は、かなり拡張子のない URL を可能にする OmniFaces SEO 機能を使用しています。これは、サーブレット フィルターを使用して動作し、コンテキスト パラメーターを にweb.xml
追加し、Web アプリケーションの xhtml ドキュメント レイアウトを反映するディレクトリfaces-views
を WEB-INF に追加することによって自動的に有効になります。
ただし、Spring コンテナーと、JSF 依存性注入を Spring 依存性注入に置き換えるカスタム EL リゾルバーを利用しているため、Spring との互換性の問題について少し心配していました。これにより、すべてのマネージド Bean も Spring Bean になります。さらに心配なのは、受信リクエストをインターセプトして認証するサーブレット フィルターを使用して動作する Spring Security を実装していることです。私が心配していたのは、この 2 つがたまたま特定の順序で呼び出された場合、正しく動作しないのではないかということでした。
Mojarra の ExtensionlessURLS 機能は、ドキュメントに記載されているものとは少し異なります。
Mojarra で動作させるには、xhtml ファイルを元の場所に残すだけでよいことに気付きましたが、faces-views
ディレクトリに同じ名前と相対パスの空のファイルを配置する必要がありました。フィルタは拡張子のないリクエストまたは XHTML リクエストのいずれかを認識し、ページを適切に表示するように見えました
ただし、MyFaces に切り替えたとき、この動作が変更され、faces-views
ディレクトリ内の空のファイルが原因で、ページ要求時に Premature EOF Exception がスローされるようになりました。XHTML と拡張子のないリクエストの両方を処理できるようにするには、両方の場所で同じページの複製コピーを保持する必要があることに気付きました。
ファイルを実行することでこれを回避しようとfaces-views
しましたが、ソースが見つかりましたが、これを行ったときにページが正しく読み込まれませんでした。
私の質問は、Mojarra と MyFaces で ExtensionlessURL を使用すると、なぜ異なる動作が見られるのですか? この理由でSpring Securityはできますか?プロジェクトで同じソース コードの 2 つのコピーを保持する必要がないように、この問題を回避するにはどうすればよいですか (これを受け入れることで、ばかげたエラーや機能の欠落を招いていることは明らかです)。
ajax - ViewExpiredExceptionが発生したときにJSFエラーページが表示されない
ページ内の表示が期限切れになると、次のエラーが発生します。メッセージにはError page '/home.xhtml' will be shown.
、実際には何も表示されておらず、ページは同じままで、フリーズしていることが示されています。私はbalusCによって記述されたOmnifacesのFullAjaxExceptionHandlerを使用しています。
Primefaces3.5とMojarra2.1.17を使用しています。
彼の問題をどのように解決できるかという提案を1つ手伝っていただけませんか。
jsf - JSF2.0 commandButtonを使用しているときに、リクエストスコープのバッキングBeanにviewParamを渡すにはどうすればよいですか?
私は次のページを持っています:
そして次のBean:
何をしても、commandButtonがクリックされるとreturnToがバインドされないようです。これはログインページ なので、LoginMBを@ViewScopedBeanにしたくありません。
助言?このシナリオを処理するためのより良い方法はありますか?
編集:
- MyFaces2.1.10によって提供されるTomEE+Serverv1.5.1でこれを実行しています
- 全ページを追加
- 問題を明確にしました:
redirect()
関数内で、returnToがnullです
jsf-2 - AJAX:OmniFaces FullAjaxExceptionHandlerは、エラーページを表示すると言っていますが、表示されません
ViewExpiredExceptionが発生した場合(開発中はTomcatの作業ディレクトリをクリーンアップしてこれを強制します)、PrimeFacesのAJAXリクエスト後にFullAjaxExceptionHandlerがエラーページにリダイレクトされません。以下のスタックトレースを参照してください。
そして、私はエラーページを次のように登録しました:
質問stackoverflow.com/questions/15320192/jsf-error-page-not-shown-when-viewexpiredexception-occursを確認し、OmniFacesを1.4.1バージョンに更新しました。
足りないものはありますか?ありがとう。
PS:Mojarra-2.1.20、OmniFaces-1.4.1、PrimeFaces-3.5
jsf-2 - 警告: サポートされていないコンポーネント ファミリ/レンダラー タイプ: org.omnifaces.component.script/javax.faces.Button
次のフォームを定義しています。
ページをロードすると、次のエラーが Stdout に繰り返し出力されます。
ここで何が間違っていますか?
jsf - セッションが無効化された後、FullAjaxExceptionHandler がエラー ページにリダイレクトされない
Omnifaces FullAjaxExceptionHandler ( http://showcase.omnifaces.org/exceptionhandlers/FullAjaxExceptionHandler ) に問題があります。セッションが無効化された後、指定されたエラー ページにリダイレクトされません。
私のfaces-configには次のものがあります:
そして、私のweb.xmlには次のように書かれています:
セッションを無効にした後、ユーザーの観点からは何も起こらないようです。アプリケーションは「死んでいる」だけです。私のコンソールには、次の Ajax リクエストが表示されます。
- 応答コード 302 を含む元の Facelet ページへの POST
- コード 200 でログイン ページへの GET (ただし、Ajax 経由で要求されるため何も起こりません)
WebLogic 12c で MyFaces 2.1.10、Primefaces 3.5、Primefaces Extension 0.6.3 & Omnifaces 1.4.1 を実行しています。
誰かが正しい方向に私を助けることができますか? FullAjaxExeptionHandler を正しく動作させるにはどうすればよいですか?
ありがとう