問題タブ [mojarra]
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.
java - Apache MyFaces JSF2.0のバグ:getStateHelper()。putは何も保存しませんか?
MyFacesは、このコンポーネントでのgetStateHelper.put()の呼び出しを無視しているようです。
ご覧のとおり、フロントエンドコンポーネントがnextPageを呼び出すときの目標は、ページ番号を1つ増やすことです。ただし、これをMyFacesで実行すると、eval()呼び出しは即時のリクエストライフサイクルで機能しますが、次のリクエストでは0が返されます。0ではなくnullを指定すると、NPEが取得されます。
pageNumber状態は、現在の要求だけでなく、コンポーネントの存続期間中保持する必要があります。私は何が間違っているのですか?このコードはMojarraでは正常に実行されますが、MyFacesでは実行されません。
java - UIInputコンポーネントで引数を持つメソッドを使用するときにsetterメソッドを呼び出す方法は?
引数付きのメソッドを使用して JSF ページのコンポーネントの値を取得する前に、たとえば
ただし、同じ原則が必要ですが、inputText要素の値属性で使用するため、多かれ少なかれ次のようになります。
問題は、af:ajax 要素から要素を実行するときに、2 番目のメソッドがセッター メソッドを呼び出さないことです。
backingBean のセッター メソッドとゲッター メソッドに値を渡す別の方法は何でしょうか?
どうもありがとう。
jsf - p:dataTable の複数選択が機能しない
PrimeFaces dataTables で複数選択が機能していないようです。
クライアントのリスト (dataList) を実装し、ネストされた dataTables にそれぞれの予約を表示して、請求のために複数の予約を選択できるようにしようとしています。
私のコントローラーとバッキング Bean クラス:
データ モデル クラス:
選択したフォームを送信すると、ブラウザーは次のデータをサーバーに送信します。
また、デバッグ中に のgetRowData
メソッドがBookingsDataModel
正しいBooking
オブジェクト (選択されたオブジェクト) を返すことがわかりました。
setBookingsToBill
ただし、常に空の配列がオブジェクトに渡されClient
ます。ここで何がうまくいかないのでしょうか?
アップデート:
空の配列には、最初のオブジェクトのみが渡されClient
ます。予約が選択されているかどうかは関係ありません。他のすべてのClient
オブジェクトのsetBookingsToBill
メソッドは、パラメータ値 で呼び出されますnull
。
jsf - j_security_checkがウェルカムページにリダイレクトされない-ログインイベントリスナーが成功しましたか?
何年もの間、ログイン後にアプリケーションのウェルカムページに移動しないことがある理由に戸惑いました。私はついにそれを理解しました(他のみんなから数年後):
j_security_checkで正常にログインし、ウェルカムページに移動します
セッションタイムアウトを待つ
GETリクエストを送信するh:linkをクリックします
これはGETであり、POSTではないため、カスタムViewExpiredException
ハンドラーは起動しません
セッションがタイムアウトしたため、コンテナセキュリティはログインページにリダイレクトします。セッションタイムアウト+コンテナセキュリティのため、(h:linkからの)getリクエストは、フェーズリスナーまたはフィルターのいずれかでアプリケーションに表示されません。再度ログインに成功しました
j_security_checkは、
認証をトリガーしたページ(この場合はGETリクエストのターゲット)にリダイレクトします。
私が理解していなかった最後のビットは、それが常にウェルカムページに行くだろうと思いました。
私の問題は、現在の設計では、ログイン後に常にウェルカムページを表示する必要があることです。ウェルカムページにはpreRenderViewイベントがあり、ログイン後にセッションスコープのBeanにコンテキスト情報を設定し、いくつかのカウンターなどをインクリメントします。
このコンテキスト情報は、他のページのBeanコードをサポートするために必要です。現在、最初にウェルカムページを通過しないと、例外が発生します。
それを修正するという点で、私は次のオプションを見てきました:
理想的には、呼び出すことができる@PostLoginメソッドがあり、それによって私のすべての問題がきれいに解決されます。Myfaces CODIでJSF(Mojarra)を使用していますが、希望どおりの動作をするものが見つかりません。
フィルタにコードを追加することもできますが、データ(ログイン数など)を保持する必要があります。これは適切なオプションのようには見えません。たぶん私は間違っています。
j_security_checkの潜在的なターゲット(GETで呼び出されるページ)のすべてのpreRenderViewメソッドが、j_seecurity_checkから直接呼び出される場合を処理するようにします。これが私がしなければならないことであることがわかりますが、それは多くの面倒のようです。
j_security_checkの動作をオーバーライドするために、glassfish用のサーバー認証モジュールを作成します。
これは通常どのように処理されますか?何年にもわたってPOSTを悪用した後、単純なナビゲーションケースのGETに移行した後、この問題が発生し始めました。カスタム例外ハンドラーが機能しません。誰かがこの問題について何かガイダンスを持っているなら、私はそれを感謝します、少なくとも私は今何が起こっているのか知っています。うまくいけば、私は明らかな何かを逃しました!
ありがとうO/S
jsf-2 - myfaces から mojarra に切り替えた後の IndexOutOfBoundsException
myfaces (2.1.7) から mojarra (2.1.7) に切り替える必要がありました。この後、以下のような例外が至る所で発生しています。
フォームを送信すると、検証エラーが発生します。ここまでは正しいです。フォームを再度送信すると、検証エラーが発生します。ここまでは正しいです。フォームを再度送信すると、IndexOutOfBoundsException が発生します。
これをグーグルで検索しましたが、まだ手がかりが見つかりません。
ジョニー
jsf-2 - Mojarra 2.0.4 の問題で JBoss AS 7.1.1 を設定する
JBoss AS 5.1.0 GA で動作する webapp があります。Mojarra 2.0.4 jar を使用します。これを JBoss AS 7.1.1 に移行中です。このバージョンの JBoss は 2.1.7 に同梱されています。そこで、2.0.4 のスロットを定義し、それらMETA-INF/jboss-deployment-structure.xml
を他の依存関係と共に依存関係として参照することで、Mojarra バージョンをダウングレードしました。
jboss-deployment-structure.xml
これにより、デプロイ時に次の例外がスローされました
このリンクを参照し、依存関係を次のように変更しました
展開時のエラーを取り除きましたが、次のランタイム例外を導入しました
と
私は(もちろんグーグルで)、例外はしばしば3つのことが原因であると考えました
- xhtml で使用されている無効/閉じられていないタグ (誤って伝播された例外)
- セッション タイムアウト (誤って伝播された例外)
- Tomcat の POST パラメータ数の制限
残念ながら、最初の 2 つは原因ではありませんでした。バリデーターを使用して誤った xhtml ページを実行したところ、マークアップが有効であり、セッションの有効期限も切れていないことがわかりました。また、3 番目の点に対処するためorg.apache.tomcat.util.http.Parameters.MAX_COUNT
に を 5000 に増やしました。standalone.xml
エラーは引き続き発生します。
また、デフォルトでバンドルされている Mojarra 2.7.1 バージョンへの移行も試みました。これにより、最初の実行時例外は回避されましたが、2 番目の例外は残りました。このエラーの原因となっているこれらのページの唯一の特異点は、それらのページに ajax 呼び出しが含まれていることです。面白いことに、アプリケーションは AS 5.1.0 GA で正常に動作しているため、マークアップに誤りがあると、5.1.0 でも問題が発生したことになりますが、そうではありませんでした。したがって、無効なマークアップはほとんどありません。どんなポインタでも大歓迎です!
更新: の行が に評価されていることをPartialViewContextImpl.java:431
示していることがわかりました。理由はわかりませんがctx.getRenderKit()
null
UPDATE2 :フォーム内で純粋な html 入力コンポーネントを使用する場合にのみ問題が発生することが判明しました<input type="text">, <select>
。これらを から削除する<h:form>
か、対応する JSF タグに変換すると、正常に動作します。どこかで何かがひどくうまくいかない。これがjboss、Mojarra、または特に私のアプリが原因であるかどうかを正確に把握することはできません。プレーンなバニラ JSF アプリで試してみましたが、html 入力タグを使用するかどうかに関係なく、エラーは発生しませんでした。したがって、これを引き起こしているのは、私のアプリと jboss 7.x の組み合わせです。何か案は?
jsf-2 - 非表示のjavax.faces.ViewStateのJSF2インジェクションを防ぐ方法
に隠されたjavax.faces.ViewStateを挿入して、Mojarraを禁止するにはどうすればよい<form>
ですか?ページが最初に読み込まれたときに機能する検索<form method='GET'>
があります(ビュースコープのBeanが正しく再初期化されるため)。しかし、ページ内のAJAXページ付け(PrimeFacesグリッド上)の後、Mojarra(またはPrimeFaces?)は非表示のjavax.faces.ViewStateをフォームに挿入します。これで、フォームを送信しても、javax.faces.ViewState入力が原因でビュースコープBeanが再起動しません。
ここでの問題は次のとおりです。検索Beanを初期化してユーザーに結果を表示したいのですが、ViewScopeパラメーターが渡されると、このBeanは初期化されず、関連ページも表示されません。前のページに残っているだけです。
jsf - GlassFish で Mojarra のバージョンを更新する方法
Mojarra バージョン 2.1.8 を使用するように JSF アプリケーションを更新したいと考えています。これらの行を WAR パッケージの POM ファイルに追加しました。
JSF リポジトリも追加しました。I パッケージは Mojarra バージョン 2.1.8 で正常にビルドされています。しかし、GlassFish のログを開くと、Mojarra バージョン 2.1.6 がデプロイされていることがわかります。私は何が欠けていますか?GlassFish サーバーに何らかの構成を行う必要がありますか?
java - オブジェクト内のプロパティはセッション内で消えますが、Bean 自体は消えません
私には2つの異なるパスがあり、これは別のパスでのみ発生します:
SignUp.Xhtml-->SigninUpOkView-->Login.xhtml-->Welcome.xhtml-->UsersController.prepareCreateParty()--->createParty.xhtml-->UsersController.createParty()
SignUp.Xhtml-->SigninUpOkView-->Login.xhtml-->Logout-->Login.xhtml-->Welcome.xhtml-->UsersController.prepareCreateParty()--->createParty.xhtml-->UsersController.createParty()
何が起こるか: コントローラーのメソッド prepareCreateParty() で新しいパーティ オブジェクトを作成し、それをユーザー オブジェクトに挿入して、ユーザーが CreateParty-xhtml ページに移動したときにパーティが null にならないようにしますが、ケース 2 でのみ機能します。 Signin up と createParty の間にログアウトします。UserController は managedBean であり、UsersController は SessionScoped にあります。私はまだ user という名前のセッションに User を持っていて、それを Login Filter に入れました。ケースは Welcome.xhtml---->UsersController.CreateParty() の間で同じですが、本当に奇妙なことが起こります。createParty-method で default-name を party に挿入しようとしましたが、最初のケースでは、User オブジェクトがまだ存在していても消えてしまい、User 内の Party-property だけが NULL です。ケース 2 では、ログアウトしてログインしても、まだそこにあり、すべて正常に機能しています。その原因は何ですか?私はすべてを試しましたが、私は苦しみ、欲求不満になり始めています.
ユーザーの場合:
IN USERSCONTROLLER (SessionScoped ManagedBean): public UsersController(Users userEntity) { this.currentUser = userEntity; }
CreateParty.xhtml-page で:
LoginFilter.doFilter():
Glassfish 3.1.2 Mojarra 2.1.6 PrimeFaces 3.2 Madness 1.100%
一体何が原因なのですか、たくさん助けていただきありがとうございます!私の説明が英語であっても理解していただけると幸いです。サーミ語