1
phaselistener를 사용하여 사용자가 특수한 페이지에 액세스하는 것을 막으려 고 시도합니다. 그 이유는 그들이 어떤 페이지에 액세스하려고 하는지를 알아 내려고하기 때문입니다.JSF PhaseListener viewId가 항상 1보다 늦음
하지만 제 문제는 이전에 페이지를 가져 오는 것입니다. 실제 페이지가 아닙니다.
public void afterPhase(PhaseEvent event)
{
FacesContext fc = event.getFacesContext();
System.out.println("test1" + fc.getViewRoot().getViewId());
}
여기
public void afterPhase(PhaseEvent event)
{
FacesContext fc = event.getFacesContext();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
String uri = request.getRequestURI();
System.out.println("uri: " + uri);
}
같은 이유 때문이다, 어떻게 내가는 사용자가 액세스하려고하는 페이지 이름을받을 수 있나요? 그들이 전에 한 걸음 더 나아가거나 더 나은 페이지를 올 필요가있는 사람은 아닙니다.
즉, POST로 페이지 간 탐색을 수행하지 말고 GET으로 수행하십시오. http://stackoverflow.com/questions/4317684/when-should-i-use-houtputlink-instead-of-hcommandlink도 참조하십시오. – BalusC