는 좀 JSF 구성 요소/볼 수있는 JSF 페이지 home.xhtml을 가지고의 그것이 현재 test-popoup-win
라는 (파이어 폭스) 브라우저의 팝업 창에로드 가정 해 봅시다. 이제 동일한 페이지/URL에 액세스하려고 시도합니다. home.xhtml? query = JSF, 새로운 url 매개 변수와 함께 새로운 검색을 기반으로 다른/새로운 구성 요소 세트를로드해야하는 다른 브라우저 (Firefox) 브라우저 창에서 액세스하려고합니다. context (? query = JSF). 그리고 이것은 같은 브라우저 팝업창에 home.xhtml을로드합니다. 이름은 test-popup-win
이며 이전 JSF 구성 요소 /보기를 덮어 씁니다. 백엔드 서블릿 코드에서 실제로는 을 같은 페이지 home.xhtml? query = JSF로 리디렉션하고 있습니다.JSF : ContextAwarePropertyNotFoundException/javax.el.PropertyNotFoundException
그러나 새보기를 표시하는 대신 다음 오류가 발생합니다. 로그에 속성을 찾을 수 없음이 표시됩니다. 찾을 수없는 속성이 이전 뷰/빈에 속해 있는지 확인할 수 있습니다. 그러나 사용자 정의 오류 페이지에서 계속을 클릭하면 아무런 문제없이 새보기가 표시됩니다.
이전보기를 깨끗하게 지우고 새로운보기 또는 다른 방법으로 문제를 해결할 수있는 방법을 제안하여 도움/조언을 부탁드립니다. 입력 사항이 누락 된 경우 알려주십시오. 고맙습니다.
이런 종류의 JSF 문제를 디버깅하는 좋은 방법이 있습니까?
업데이트 : 한-하지 않을 수 있습니다 - 좋은 임시 해결 방법 (I 솔루션 호출도 모릅니다) FacesErrorHandlingServlet 클래스에서 예외를 무시할 수 있습니다. 난 여전히 좋은 솔루션을 찾고, 당신은 당신의 콩 unexisting 게터/세터를 호출하거나하지 않는 확인 한
*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*
전체 q '를 읽지 않고 코드 어딘가에'testJsonData' 속성에 액세스하려고합니다. 'ContainerBean',하지만 존재하지 않거나 getter/setter가 없습니다 ... 체크 아웃하십시오 – Daniel
당신은'ui : param'? – Daniel
bean에서 unexisting getter/setter를 호출하지 말거나, 모든 bean이 동일한 속성 (상속)을 공유하는지 또는 (rendered에 get하려고 시도하는) 컴포넌트를'rendered = "# {myBean}으로 감싸는 지 확인하십시오. typeOfBean eq 'theOneWithThatProperty'} ""또는 그와 비슷한 것 – Daniel