2013-03-25 5 views
1

JSF의 UI 구성 요소 또는 타사 구성 요소 라이브러리 중 하나를 사용하는 경우 종종 어디에서 설명하는지 설명서를 찾는 데 어려움이 있습니다. 라이프 사이클에 이러한 태그의 속성에서 시작된다.각 JSF 구성 요소가 페이지 수명주기와 상호 작용하는 방법에 대한 설명/문서는 어디에서 찾을 수 있습니까?

의가 나는 정보 흐름을 발견 할

<h:selectOneMenu valueChangeListener="#{myBean.myMethod1}" ... /> 

또는

<h:commandButton action="#{myBean.myMethod2}" actionListener="#{myBean.myMethod3}" ... /> 

을 사용하고자한다고 가정 해 봅시다 JSF 라이프 사이클에서 valueChangeListener, action 또는 actionListener이 각각 호출되는 위치는 무엇입니까?

다음은 단지 예일뿐입니다. 각 메서드의 정확한 메서드가 호출 될 때를 이해하지 못하면 각 구성 요소의 각 특성에 대해 StackOverflow를 사용하지 않도록 노력하고 있습니다.

이러한 설명서가없는 경우 (??), 상황에 따라 어떤 디버깅 기술을 사용하여 제안 하시겠습니까?

+1

질문이 약간 모호하지만 시작하기 좋은 곳은 [JSF PhaseListeners] (http://softwareengineeringsolutions.com/thoughts/frameworks/JSF.Techniques-PhaseListeners.htm)입니다. 구성 요소에 대한 JSF 요청의 라이프 사이클 – kolossus

+0

나는 그것을 편집했고 더 명확 해 지길 바랍니다. 그렇지 않다면 불분명 한 점을 알려주십시오. 아마 내가 그것을 향상시킬 수 있습니다. – Chris

답변

1

표준 JSF 속성에 대해서는 JSF specification과 같은 정보를 찾을 수 있습니다. 문서 상태가 검증 2.5.1.3 장에서 다음

변환 된 값은 요소의 setValue의() 메소드에 가압되고, 값이 변경된 경우 ValueChangeEvent는 소성한다.

(따라서, 그것은 변환/검증 및 로컬 값의 설정의 말에 해고 것) 그리고 응용 프로그램 작업에 대해 7.3 장에서 다음

응용 프로그램 동작이입니다 ActionEvent이 발생하면 요청 처리 라이프 사이클의 Apply Request Values ​​또는 Invoke Application 단계 (A의 즉시 속성에 따라)에서 응용 프로그램 지정 처리를 수행하는 일부 Java 클래스의 응용 프로그램 제공 메소드 이벤트를 시작하는 ctionSource 인스턴스).

다음과 같은 관련 질문도 이해에 도움이 될 수 그것을 :

제 3 자 구성 요소 라이브러리에 관해서는, 그 태그 문서 또는 사용자 보면 안내서. 그러나 일반적으로 사용자 정의 이벤트는 사용하지 않고 표준 JSF 이벤트 또는 표준 Ajax/HTML DOM 이벤트 추상화 (따라서 ajax/HTML에 대한 기본적인 지식이 필요합니다).

디버깅에 관해서는, 가장 쉬운 방법은 호출되는 메소드에 중단 점을 넣고 호출 스택 및/또는 적중 순서를 조사하는 것입니다. Mojarra는 FacesServlet#service() 다음의 호출 스택에 분명히 나타나야하는 ProcessValidationsPhase과 같은 꽤 자체적으로 문서화되는 클래스를 각 단계에 사용합니다.또한 FacesContext#getCurrentPhaseId()을 기록/인쇄하거나 Thread#dumpStack()을 호출하여 로그의 스택 추적을 읽고 관련 클래스를 수동으로 찾아 볼 수도 있습니다.

+0

감사합니다. 그게 정확히 내가 찾는 정보의 종류입니다. 그러나 귀하의 대답을 감안할 때이 정보를 얻는 가장 쉬운 방법은 없다고 생각합니다. 비록 이것이 문서화 된 첫 번째 것이 아닐지라도. 대답은 항상 직관적 인 것은 아닙니다. 나는 아마 당신의 디버깅 제안으로 시작할 것인데, 이것은 정말로 도움이 될 것입니다! 인라인 및 참조 된 설명이 그렇듯이! – Chris

+0

JSF, BalusC에 관한 책을 언제 출판 할 예정입니까? API + 구현을 숙달하고 JSF 개발자로서의 경험을 통해이 주제에 관한 책을 쉽게 작성할 수 있습니다. – Chris

+0

당신을 진심으로 환영합니다. 책에 관해서는 나중에. 당신은 지금까지 그렇게 묻지 않은 사람입니다. – BalusC