2010-05-12 3 views
16

JSF : 초기 요청 및 다시 게시 요청?

<h:inputText id="name" value="#{customer.name}" /> 

견적 java.sun.com에서 JSF의 코드 라인 아래 이것 좀 봐 주시기 바랍니다 :

이 태그를 포함하는 페이지의 초기 요청에 대한

에서, 자바 서버 구현 얼굴 는 라이프 사이클의 렌더링 응답 단계에서 #{customer.name} 표현식을 평가합니다. 이 단계에서 표현식은 즉각적인 평가 에서처럼 고객 bean의 name 값에 액세스합니다.

포스트 백 요청의 경우 JavaServer Faces 구현은 라이프 사이클의 여러 단계에서 표현식을 평가합니다.이 단계에서 값은 요청에서 검색되고 유효성이 검사되어 고객 bean으로 전파됩니다.

은 내가 초기 요청게시 요청을 이해 모르겠습니다. 클라이언트 브라우저가 웹 서버에 두 가지 다른 요청을합니까?

답변

12

초기 요청은 ${customer.name} 태그가있는 페이지를 표시하기 위해 브라우저가 수행하는 요청입니다. 포스트 백은 브라우저가 일부 또는 모든 페이지 값을 게시 한 다음 처음에 게시 된 동일한 페이지가 클라이언트에 반환 될 때 발생합니다. 이는 예를 들어 유효성 검증 오류의 결과로 발생할 수 있습니다.

렌더링되는 현재 뷰가 포스트 백의 결과인지 여부를 알면 유용합니다. 예를 들어, 페이지가 새로 고쳐질 때마다가 아니라 다시 게시의 결과로 메시지를 표시하려고 할 수 있습니다.

23

초기 요청은 복구보기 & 응답 단계 렌더링, 모든 단계 (요청 값 적용, 유효성 검사 단계 등)에서의 다시 게시 요청 프로세스 만 통과합니다.

첫 번째 요청은 링크를 클릭하고 검색 주소창에 URL을 붙여 넣으면서 생성되며 포스트 백 요청은 제출 버튼 또는 게시물 요청을 클릭하여 양식을 게시하여 만듭니다.

+1

항상 그렇지는 않습니다. 뷰 매개 변수와 함께 초기 GET 요청의 경우 6 단계가 모두 실행됩니다. –

+0

이 답변은 100 % 정확하지 않습니다. @ ShirgillFarhanAnsari의 의견이 정확하며 답변이 더 잘 업데이트되었습니다. –

0

일반적으로 브라우저로 이동하여 앱에 URL을 쓸 때 첫 번째 요청은 하나입니다. 쿠키를 사용하여 서버에 HTTP GET 요청을합니다. JSESSIONID. 복원 할 javax.faces.viewid가 아닙니다.

열린 페이지가 있고 해킹 할 때 : window.location = newUrl -> 초기 요청을합니다.

대신 jQuery ("# somoeSubmitButton")와 같은 작업을 수행 할 때 click()을 누르면 서버에 POST되고 이전보기가 복원되며 context.isPostback() 얼굴을 묻는다면? 너는 사실이 될 것이다.