짧은 질문 : 리디렉션을 수행 할 수 있습니까? 예를 들어, 사용자가 로그인하지 않았을 때 페이지가 렌더링 될 때?페이지로드시 JSF 리디렉션
4
A
답변
8
예.
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
if (((HttpServletRequest) request).getSession().getAttribute("user") == null) {
((HttpServletResponse) response).sendRedirect("error.jsf"); // Not logged in, so redirect to error page.
} else {
chain.doFilter(request, response); // Logged in, so just continue.
}
}
여기 당신이 일반적으로 예상하는대로 User
세션 범위에 저장되어 있다고 가정. 세션 범위가 지정된 JSF 관리 Bean으로 user
이라는 이름을 사용할 수 있습니다.
정상적인 GET
요청 중에는 "bean 작업"의 수단이 없으므로 탐색 규칙이 적용되지 않습니다. 또한 관리 빈이 생성 될 때 리디렉션을 수행하는 것은 작동하지 않습니다. 왜냐하면 정상적인 GET
요청 중에 관리 빈이 구성 될 때 응답이 이미 렌더링되기 시작했기 때문에 응답은 이 아닙니다. (IllegalStateException: response already committed
만 생성). PhaseListener는 실제로 JSF 단계에서 청취 할 필요가 없으므로 번거롭고 압도적입니다. "일반"HTTP 요청과 세션 범위에있는 특정 객체의 존재를 수신하기 만하면됩니다. 필터가 완벽하기 때문입니다. PhaseListener
시도에서
3
예 : 당신이 리디렉션을 수행 할 때
if(!isLoggedIn) {
FacesContext.getCurrentInstance().getExternalContext().redirect(url);
}
+0
감사합니다 :). 네비게이션 규칙을 트리거하는 것이 편리 할 수 있지만 이것이 불가능하다고 생각합니다. –
1
당신이 지정하는 PhaseListener
를 사용할 수 있습니다.
1
:
FacesContext ctx = FacesContext.getCurrentContext();
ctx.getApplication().getNavigationHandler()
.handleNavigation(ctx, null, "yourOutcome");
관련 문제
- 1. java/jsf 리디렉션 페이지
- 2. JSF 2 - 페이지로드시 구성 요소 속성 지우기?
- 3. 페이지로드시 JSF 데이터 테이블 새로 고침
- 4. 매개 변수가있는 JSF 2.0 리디렉션
- 5. 리디렉션 후 JSF 메시지 보존
- 6. JSF 2.0에서 페이지로드시 매개 변수가있는 백킹 빈 초기화
- 7. JSF ajax 오류 페이지로 리디렉션 할 패턴
- 8. 로그인 후 스프링 보안 및 JSF 리디렉션
- 9. Liferay 포틀릿 및 JSF : 렌더링 도중 리디렉션
- 10. JSF Primefaces은 : 페이지의 특정 페이지로 리디렉션 : 탭
- 11. jsf에서 페이지로드시 드롭 다운을 채우는 방법은 무엇입니까?
- 12. JSF 2.0 : 리디렉션 (대상 = 비어 있음) 후보기를 저장하는 방법
- 13. 페이지로드시 PDF 인쇄
- 14. 페이지로드시 양식 제출 중
- 15. 페이지로드시 빈 DropDownList
- 16. 페이지로드시 jquery 함수를 호출하려고합니다.
- 17. 페이지로드시 jquery 시작 함수
- 18. OnClick 페이지로드시 발생?
- 19. 페이지로드시 CSS 추가/제거
- 20. 페이지로드시 시작되는 수정 타이머
- 21. 선택적 페이지로드시 JavaScript 실행
- 22. 숨겨진 div 페이지로드시 깜박임
- 23. 모든 페이지로드시 drupal module_list
- 24. Internet Explorer가 페이지로드시 최소화합니다
- 25. 페이지로드시 요소 가시성 변경
- 26. 페이지로드시 사용자 인증 확인
- 27. JSF
- 28. JSF -
- 29. JSF -
- 30. JSF 리디렉션이 작동하지 않습니다.
위로 엄지. 이제는 특정 페이지에서만 트리거되도록이 내용을 조정해야합니다. –
특정 페이지에 일반적인 'url-pattern'을 만들고이 필터를'web.xml'의'url-pattern'에 정확히 매핑하십시오. 예를 들면'/ secured/*'정도입니다. – BalusC