0

いくつかのJSFコンポーネント/ビューを含むJSFページhome.xhtmlがあり、現在(Firefox)ブラウザのポップアップウィンドウにロードされているとしましょうtest-popoup-win. ここで、新しい検索コンテキストに基づいて、別の/新しいコンポーネントのセットをロードすることになっている別の (Firefox) ブラウザ ウィンドウから、追加の URL パラメータを使用して、同じページ/URL、home.xhtml?query=JSFにアクセスしようとします ( ?query=JSF)。これにより、home.xhtml という名前の同じブラウザー ポップアップ ウィンドウが読み込まれtest-popup-win、以前の JSF コンポーネント / ビューが上書きされます。バックエンド サーブレット コードでは、実際には同じページ home.xhtml?query=JSFにリダイレクトしています。

ただし、新しいビューを表示する代わりに、次のエラーがスローされます。ログは、プロパティが見つからなかったことを示しています。プロパティが見つかりません、古いビュー/Bean に属していることを確認できます。しかし、カスタム エラー ページで [続行] をクリックすると、問題なく新しいビューが表示されます。

以前のビューをきれいにクリアして新しいビューをロードする方法、または問題を修正するためのその他の方法を提案して、ヘルプ/アドバイスをお願いします。入力が不足している場合はお知らせください。どうもありがとうございました。

この種の JSF の問題をデバッグする良い方法はありますか?

更新:良くないかもしれない一時的な回避策の 1 つ (私はそれを解決策とは呼びません) は、FacesErrorHandlingServletクラスの例外を無視することです。私はまだ良い解決策を試しています/探しています。もしあれば共有してください

*15:58:55,495 ERROR [stderr] (http-/0.0.0.0:8080-10) **javax.servlet.ServletException: javax.el.PropertyNotFoundException: The class 'com.test.ContainerBean' does not have the property 'testJsonData'.**
15:58:55,496 ERROR [stderr] (http-/0.0.0.0:8080-10)     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:229)
15:58:55,496 ERROR [stderr] (http-/0.0.0.0:8080-10)     at org.apache.myfaces.webapp.MyFacesServlet.service(MyFacesServlet.java:112)
15:58:55,497 ERROR [stderr] (http-/0.0.0.0:8080-10)     at **com.test.FacesErrorHandlingServlet**.service(FacesErrorHandlingServlet.java:44)
15:58:55,497 ERROR [stderr] (http-/0.0.0.0:8080-10)     at sun.reflect.GeneratedMethodAccessor293.invoke(Unknown Source)
.
.
.
15:58:55,536 ERROR [stderr] (http-/0.0.0.0:8080-10) **Caused by: javax.el.PropertyNotFoundException: The class 'com.test.ContainerBean' does not have the property 'testJsonData'.**
15:58:55,537 ERROR [stderr] (http-/0.0.0.0:8080-10)     at javax.el.BeanELResolver.getBeanProperty(BeanELResolver.java:661)
15:58:55,537 ERROR [stderr] (http-/0.0.0.0:8080-10)     at javax.el.BeanELResolver.getValue(BeanELResolver.java:290)
15:58:55,537 ERROR [stderr] (http-/0.0.0.0:8080-10)     at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
15:58:55,538 ERROR [stderr] (http-/0.0.0.0:8080-10)     at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:179)
15:58:55,538 ERROR [stderr] (http-/0.0.0.0:8080-10)     at org.apache.el.parser.AstValue.getValue(AstValue.java:166)
15:58:55,539 ERROR [stderr] (http-/0.0.0.0:8080-10)     at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
15:58:55,539 ERROR [stderr] (http-/0.0.0.0:8080-10)     at org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression.getValue(ContextAwareTagValueExpression.java:96)
15:58:55,540 ERROR [stderr] (http-/0.0.0.0:8080-10)     ... 82 more* 
4

1 に答える 1

0

Bean で存在しないゲッター/セッターを呼び出さないことを確認するか、すべての Bean が同じ基本プロパティを共有する (継承) か、コンポーネント (ゲッターにアクセスしようとする) をラップするか、rendered="#{myBean.typeOfBean eq 'theOneWithThatProperty'}"またはそのようなもの...

于 2013-08-26T14:13:44.500 に答える