問題タブ [myfaces]
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 トリニダード: 動的内のタグ
簡単な要件があります。私の列の数<tr:table/>
は動的です。someBean.features
レンダリングされる列の数を決定するオブジェクトのリストがあります。
次の図は、私の要件を明確にする必要があります。
提供されたコードでは<c:forEach/>
、JSF 環境で使用すると明らかに問題を引き起こす JSTL タグが使用されていました。彼らは次のようなことをしました:
しかし、上記のコードをプロファイリングすると、上記someBean.getValues
のタグへの入力であるメソッド<tr:table/>
が約 20 回ではなく、数千回呼び出されていました<c:forEach/>
。<tr:*/>
レンダリング時間タグも同様です。
だから、これが私がやろうとしていることです(に置き換え<c:forEach/>
て<tr:iterator/>
ください:
しかし、何らかの理由で、<tr:iterator/>
が a の中に配置されるのを好まないようで<tr:table/>
、決して実行されません。
解決策、ヒント、ガイドラインは大歓迎です。
ああ、私たちは MyFaces Trinidad 1.0.13 実装で JSF 1.1 を使用しています。
ありがとう。
jsf-2 - MyFaces 2.1 リダイレクト ナビゲーション ケース
Mojarra から Myfaces に切り替えました。ほとんどの場合、それほど面倒ではありませんが、ナビゲーション ルールが以前のように機能しません。ナビゲーションの場合、リダイレクトに問題があります:
以下のようなコマンド リンク ナビゲーションでは、403 エラー (アクセスが拒否されました) が発生します。
この特定のケースでは、ブラウザーは (test.jsf ではなく) test.xhtml にリダイレクトしようとしました。これは、web.xml のセキュリティ制約によって防止されます。もちろん、セキュリティ制約を削除すると、生の xhtml が提供されます。
リダイレクトを削除すると問題なく動作しますが、もちろんブラウザの URL は変更されません。
また、以前は次のような無効な結果でナビゲーションを行うことができました。
ただし、リストを動的に表示するために ajax リクエストが送信されると (bean.save メソッドを呼び出さずに)、ページがリダイレクトされます。
session - JSF2セッションBeanの問題
複数のSessionBeanを使用してJSF2.1(MyFaces)アプリを実行しています(すべてのBeanはセッションBeanです)。タイムアウトは、web.xmlで次のように定義されています。
これは1時間に相当します。
問題は、通常の使用ではNo Saved View...
例外が発生することです。
Beanは現在、Eclipseのideとの互換性のためにfaces-config.xmlで定義されています。
何がこれを引き起こしているのかわかりませんし、間違いなくタイムアウトではありません。問題となる可能性のあるアイデアはありますか?
私が提供できるさらなる情報があれば、私に知らせてください。
ありがとう!
PS-jsf-2.1
タグはありません
アップデート1私はちょうど60が1分を意味すると考えました!:-)それが問題になる可能性があります。そのようになったら質問を閉じます
アップデート2それはそうではありませんでした...いくつかのより多くの情報それは役に立つかもしれません:
- エラーは特にのためのものですが
/mainPanel.jsf
、これは実際にはxhtmlの使用の構成です<ui:include>
- アプリ内の特定のポイントをクリックしたときにのみ発生します。クリックの結果として実行されるコードは次のとおりです。
Jquery
コード:
JSF 2
コード:
ejb-3.0 - JBoss6を使用してEJB3セッションBeanを別のセッションBeanに注入する方法
参加していないプロジェクトをJBoss4からJBoss6に移行しようとしています。プロジェクトはEJB3バックエンドとMyFaces1.1.4フロントエンドで構成されています。MyFaces1.1.4ライブラリをJBoss6jsfデプロイヤに含めました。
ヘルパークラスを介してフロントエンドからバックエンド関数への呼び出しがあります。
その呼び出しの後、セッションBeanpatientModuleのバックエンドcanCreatePatVisit関数でNullPointerExceptionが発生します。
プロジェクトをデバッグしたところ、em、admContr、confContrがすべてnullであることがわかりました。したがって、別のセッションBeanにセッションBeanを注入する際に問題があると思いますが、何がわかりません。
フロントエンドでweb.xmlバージョンを2.5に変更し、JBoss6ライブラリーを使用しています。どんな助けでもいただければ幸いです。
役立つかもしれない場合に備えて、以下のスタックトレースの一部を含めています。
jsf - MyFaces 1.2 でのアプリケーション エラー: java.lang.IllegalStateException: このアプリケーション用に構成されたファクトリーがありません
私のアプリでは、Tomcat 6.0.xとMojarra 1.2_04 JSF 実装を使用しています。それは正常に動作しますが、JSF のMyFaces 1.2_10 implに切り替えたいと思います。
アプリの展開中に次のエラーが発生します。
これが私の web.xml 構成の一部です。
誰かが同様のエラーを経験したことがありますか?それを修正するにはどうすればよいですか? ありがとう!
編集:
問題を解決できました。FacesServlet にdelegatorを使用しているため、この delegator が問題を引き起こしていることが判明しました。このクラスにDelegatedFacesServletを実装するだけで済み、 org.apache.myfaces.webapp.StartupServletContextListenerを削除しました。ここに私のweb.xmlがあります:
ここにFacesServletDelegatorがあります
編集2:
BalusC のアドバイスに従って、web.xml を少し編集しました。これが最終バージョンです。
java - サーブレット2.4を使用してJSF2.1の別のマネージドBeanにアクセスする
最近、JSF1.2から2.1にアップグレードしました。サーブレット2.4を搭載したWebSphere6.1で実行しています
次のライブラリを使用しています:myfaces 2.1.1 el-api-2.2
今私たちが抱えている唯一の問題は、以前のように他のバッキングBeanにアクセスできないことです。
これは常にnullを返します。私達はまた試みました:
nullも返します。
@ManagedPropertyアノテーションを試しましたが、これは明らかにサーブレット2.5の機能です。ELContextがデフォルトでDIを使用する可能性はありますか?JSF2.1とサーブレット2.4で別のバッキングBeanのインスタンスを取得する方法はありますか?ありがとう!
jsf - 使用するたびに複合コンポーネントで`componentType`の同じインスタンスを取得する
Composite Component
こんにちは私が書いたを使用しているこのWierdの問題があり、CCのバッキングBean( componentType
Bean)の以前の使用から値を取得します
コードを表示するよりも、これをうまく説明する方法がわかりません。私はそれについて簡単に説明し、冗長な部分をカットしようとします:これはComposite Component
定義です:
CC Beanの定義:
そして使用コード:
idのテキストにcontrolMsg
は正しい値が表示され、#{group.values}
idのコンポーネント内のコントロール出力にinner_control_component
は以前の使用からの値が表示されます。
値は最初は正しいです...
CC Beanの使用における根本的なエラーだと思います。そうでない場合は、MyFaces 2.1
(私が使用している)のバグである可能性があります。
jsf-2 - MyFaces Orchestra を使用している場合、別のビューに移動するときに conversation.access Bean が削除されない
JSF 2、Spring、および Hibernate を使用してアプリケーションを構築しています。MyFaces Orchestra は、アプリケーションのほとんどのページで使用している会話スコープを提供するために使用されています (Hibernate セッションの Orchestra の管理を利用するため)。すべての Bean は conversation.access スコープを使用するように宣言されています。これは、(Orchestrator のドキュメントによると) ユーザーがそのバッキング Bean インスタンスへの参照を含まないページに移動するとすぐに、Bean がスコープから削除されることを意味するはずです。 .
私が遭遇している問題は、会話を明示的に無効にせずにビューから道をナビゲートした場合、後でそのビューに戻った場合でも、以前と同じデータが残っていることです。すべてのバッキング Bean に ConversationBindingListener メソッドを実装しましたが、それらがいつ会話から削除されるかを確認でき、多くの場合、そうではないことがわかります。
問題をさらに複雑にしているのは、一部のページ (ビュー) に移動するとバッキング Bean が削除され、他のページには移動しないことです。おそらく、EL 内の他のバッキング Bean への意図しない参照がページにあったためだと思いましたが、何も見つかりませんでした。また、この問題は、conversation.access スコープ Bean を持つ 1 つのページから、別の conversation.scoped Bean を使用する別のページに移動したときにのみ発生したのではないかと考えました。ただし、会話から削除された場合、そのページには conversation.access スコープ Bean への参照も含まれます。
先に述べたように、Conversation.getCurrentInstance().invalidate() を使用して会話を明示的に無効にすることは機能します。ただし、ユーザーがナビゲーション リンクの 1 つをクリックするだけでビューを離れることができるという非常に一般的なユース ケースであるため、すべてのユース ケースで会話を明示的に無効にすることはできません。
追加の詳細: Hibernate 3.6 (JPA の代わりに) を使用しているため、HibernatePersistenceContextFactoryを使用する必要がありました。
- MyFaces オーケストラ (myfaces-orchestra-core20-1.4.jar)
- JSF 2 (モハラ 2.0.4)
- スプリング 3.0
- プライムフェイス 2.2.1
- リッチフェイス 4.0.0
これが私の Spring コンテキスト構成の外観です (オーケストラの場合)。
JSF バッキング Bean 宣言の例をいくつか示します。
java - サーバーの再起動後のJSFの問題:保存されたビューステートが見つかりませんでした
この問題の解決を続けます。MojarraをMyFacesに置き換え、JDKをアップグレードしました。サーバーの再起動後にフォームで作業を続けると、次のエラーが表示されます。
エラーが発生しました:
コンソール:
スタックトレース:
そして私のweb.xml:
そのようなエラーレポートに出会ったことはありませんか?
performance - jsfアプリケーションのパフォーマンス向上のヒント
jsf myfacesベースのアプリケーションのパフォーマンスを向上させる方法は?
これまでに収集したヒント
トリニダード
- web.xmlで次のinitパラメータをfalseに設定します
- org.apache.myfaces.trinidad.DEBUG_JAVASCRIPT
- org.apache.myfaces.trinidad.DISABLE_CONTENT_COMPRESSION
- org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION
- クライアント側の状態保存を使用する
- 使用していないときにページフローコンテキストマップをクリアする
Myfaces
- web.xmlで次のinitパラメータをfalseに設定します
- org.apache.myfaces.COMPRESS_STATE_IN_SESSION
- org.apache.myfaces.SERIALIZE_STATE_IN_SESSION
- org.apache.myfaces.PRETTY_HTML
- org.apache.myfaces.VALIDATE
- init paramからorg.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSIONの値を減らします(デフォルトは20)
ファセット
- web.xmlで次のinitパラメータをfalseに設定します
- facelets.DEVELOPMENT
- facelets.SKIP_COMMENTS
- facelets.BUFFER_SIZEおよびcom.sun.faces.responseBufferSizeを10000000などの大きな値に設定します
- facelets.REFRESH_PERIODを-1に設定します
これに追加するものは他にありますか?