簡體   English   中英

JSF:ContextAwarePropertyNotFoundException / javax.el.PropertyNotFoundException

[英]JSF: ContextAwarePropertyNotFoundException/javax.el.PropertyNotFoundException

我有一個JSF頁面home.xhtml ,其中包含一些JSF組件/視圖,可以說它當前已加載到名為test-popoup-win的(Firefox)瀏覽器彈出窗口中。 現在,我嘗試從另一個(Firefox)瀏覽器窗口訪問相同的頁面/ URL,即home.xhtml?query = JSF ,並使用其他url參數,該窗口應該根據新的搜索上下文加載不同的/新的組件集( ?query = JSF)。 這會將home.xhtml加載到名為test-popup-win的同一瀏覽器彈出窗口中,從而覆蓋先前的JSF組件/視圖。 在后端Servlet代碼中,我實際上是重定向到同一頁面,即home.xhtml?query = JSF。

但是,它沒有顯示新視圖,而是引發以下錯誤。 日志顯示找不到屬性。 我可以確認找不到該屬性,該屬性屬於舊視圖/ bean。 但是,如果我在自定義錯誤頁面上單擊繼續,則會得到新視圖,而不會出現任何問題。

請提出一些可以干凈地清除以前的視圖並加載新視圖的方法,或通過其他任何方式解決問題,以提供幫助/建議。 讓我知道是否缺少任何輸入。 非常感謝你。

有什么好的方法可以調試這種JSF問題?

更新:一個可能不是很好的臨時解決方法(我什至不稱其為解決方案)可能是忽略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* 

確保您沒有在bean上調用不存在的getter / setter,或者確保所有bean都具有相同的基本屬性(繼承性)或使用rendered="#{myBean.typeOfBean eq 'theOneWithThatProperty'}"來包裝您的組件(試圖訪問您的getters) rendered="#{myBean.typeOfBean eq 'theOneWithThatProperty'}"或類似的內容...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM