Process Validation

- 이 단계에서 JSF는 컴포넌트 트리를 순회하면서 각각의 컴포넌트에게 자신의 값을 수용할 수 있는지 확인하도록 요청한다.
- '요청 값 적용하기' 단계에서 입력 컴포넌트들이 갱신되기 때문에 이 단게에서는 사용자가 입력한 최신값을 가지고 있다.
- 검증을 하기전에 변환기에 의해 값이 변환된다.
- 변환기와 검증기를 무사히 거치고 나면 해당 값을 서브밋하고 다음 단계로 넘어간다.
- 그렇치 않은 경우 '응답 보여주기' 단계로 넘어간다.
<h:inputText id="helloInput" value="#{helloBean.numControls}" 
             required="true"> 
<f:validateLongRange minimum="1" maximum="500"/> 
</h:inputText> 
1. required 속성이 true가 입력한 값이 있는지 검사한다.
2. 컨버터가 입력한 값을 int로 바꾼다.
3. validateLongRange 검증기가 값의 범위를 검증한다.
- submitted value가 변환과 검증이 끝나면 그 값을 기반으로 로컬 값을 세팅하는데 이때 value change event가 발생하고 그에 따른 적절한 리스너가 실행된다. 이 리스너들에 의해 직접 응답을 출력하거나 Render Repsponse 단계로 넘어갈 수 있다.
- 모든 submitted value가 유효하다면 다음 단계로 넘어간다.