반응형
JSF(JavaServer Faces) 초기 페이지 요청 여부 판단 방법
◆ isPostback() 이란?
FacesContext.getCurrentInstance().isPostback()은 JavaServer Faces(JSF)에서 제공하는 메서드로,
현재 요청이 “초기 페이지 요청”인지 아니면 이미 렌더링된 뷰에 대해 발생한 “포스트백(Postback)” 요청인지를 구분해 주는 역할을 한다.
◆ 사용법
메서드 호출 시 현재 요청이 포스트백(웹 개발에서의 포스트백은 동일한 웹 페이지를 다시 호출하는 것을 의미)이면 true를 반환하며 초기 페이지 요청일 경우 false를 반환해 준다.
- true : 폼 제출이나 AJAX 호출 등, 이미 렌더링 된 뷰에 대해 발생한 POSTBACK 요청
- false : 사용자가 처음 페이지를 요청한 초기 요청
@PostConstruct
public void init() {
FacesContext fc = FacesContext.getCurrentInstance(); //현재 서블릿 요청에 대응하는 JSF의 컨텍스트 객체를 취득
if (!fc.isPostback()) {
//최초 페이지 로드 시에만 실행할 초기화 로직 삽입
}
}
◆ 상황에 따른 결과 예시
상황 | HTTP 메서드 | isPostback() 반환값 |
브라우저 주소창에 /page.xhtml 입력 | GET | false |
화면에 있는 <h:commandButton> 클릭 | POST | true |
<h:commandLink> 등으로 같은 뷰로 돌아오기 | POST/GET (※1) | true(POST)/false(GET) |
다른 페이지로 이동 후 다시 링크 클릭 | GET | false |
뒤로가기 버튼 클릭 | (캐시) | 판별 불가 (JSF 요청 없음) |
※1: JSF에서 <h:commandLink> 기본은 POST이지만 faces-redirect=true 같은 옵션을 걸면 GET 리다이렉트가 된다.
참조
isPostback
https://docs.oracle.com/javaee/6/api/javax/faces/render/ResponseStateManager.html#isPostback(javax.faces.context.FacesContext
isPostback
https://docs.oracle.com/javaee/7/api/javax/faces/context/FacesContext.html#isPostback--
글 내용 중 잘못된 부분이 있거나, 첨부하실 내용이 있으시면 댓글로 남겨주세요. 공부하는데 많은 도움이 됩니다.
-- 기억의 유효기간은 생각보다 짧다. --
반응형
'JAVA 기반 프레임워크 > JSF (JavaServer Faces)' 카테고리의 다른 글
JSF(JavaServer Faces)의 prependId와 자동 ID 생성에 대한 정리 (1) | 2025.01.08 |
---|---|
JSF(JavaServer Faces)의 Flash 스코프를 이용한 뷰 간의 값 전달 (0) | 2024.10.16 |
JSF(JavaServer Faces)에서, 특정 리소스 파일경로 취득방법 (0) | 2024.08.28 |
JSF web.xml 서블릿, 필터 맵핑 (2) | 2024.02.17 |
JSF의 EL 표현식 에러 (The entity name must immediately follow the '&' in the entity reference.) 해결법 (0) | 2022.11.18 |