Program Tip

프로그래밍 방식으로 현재 페이지 가져 오기

programtip 2020. 11. 30. 19:49
반응형

프로그래밍 방식으로 현재 페이지 가져 오기


JSF 백업 빈 (Managed Bean, Weld Bean은 중요하지 않음)에서 다음을 호출하여 클라이언트가있는 컨텍스트 경로를 가져올 수 있습니다.

FacesContext ctx = FacesContext.getCurrentInstance();
String path = ctx.getExternalContext().getRequestContextPath();

이것은 클라이언트가 현재 액세스하는 경로를 제공합니다 /myapplication. 같은 현재 페이지 를 가져올 수도 /home.faces있습니까?


일반적으로 UIViewRoot#getViewId()이것을 사용하고 싶습니다 .

String viewId = facesContext.getViewRoot().getViewId();

이것은 EL에서도 다음과 같이 사용할 수 있습니다.

#{view.viewId}

정확히 값이 같은 경우 탐색 결과에서 재사용 가능한하다 <h:link outcome>하고 <h:button outcome>.


HttpServletRequest#getRequestURI()또는를 사용 하여 최종 사용자가 실제로 브라우저 주소 표시 줄에 표시 하는 내용 을 가져올 수도 있습니다 .

String uri = ((HttpServletRequest) externalContext.getRequest()).getRequestURI();

EL에서도 다음과 같이 사용할 수 있습니다.

#{request.requestURI}

정확히이 값은 <h:outputLink value>또는 일반 에서 재사용 할 수 <a href>있습니다. 탐색 케이스 결과로 사용할 수 없습니다.


알겠습니다.

FacesContext ctx = FacesContext.getCurrentInstance();
HttpServletRequest servletRequest = (HttpServletRequest) ctx.getExternalContext().getRequest();
// returns something like "/myapplication/home.faces"
String fullURI = servletRequest.getRequestURI();

String uri = ((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()).getRequestURI();

 String str = ((HttpServletRequest) FacesContext.getCurrentInstance() 
 .getExternalContext().getRequest()).getRequestURI(); 
 System.out.println(str);

참고 URL : https://stackoverflow.com/questions/3253923/get-current-page-programmatically

반응형