Получите текущую страницу программно

В JSF отступающий боб (Управляемый компонент, Боб Сварки, не имеет значения), я могу получить путь контекста, который клиент идет путем вызова

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

Это дает мне путь клиент в настоящее время доступы, как /myapplication. Также возможно получить текущую страницу, как /home.faces, и как?

62
задан Ingo Fischer 26 March 2013 в 09:31
поделиться

2 ответа

Обычно вы хотите использовать UIViewRoot#getViewId() для этого.

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

В EL это также доступно следующим образом:

#{view.viewId}

Именно это значение можно повторно использовать в таких итогах навигационного случая, как и .


В качестве альтернативы можно также использовать HttpServletRequest#getRequestURI(), чтобы получить все, что конечный пользователь видит в адресной строке браузера.

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

Что в EL также доступно следующим образом:

#{request.requestURI}

Именно это значение можно повторно использовать в или простом . Обратите внимание, что вы не можете использовать его в качестве результата навигационного регистра.

113
ответ дан 24 November 2019 в 16:43
поделиться

Ок, понял, это

FacesContext ctx = FacesContext.getCurrentInstance();
HttpServletRequest servletRequest = (HttpServletRequest) ctx.getExternalContext().getRequest();
// returns something like "/myapplication/home.faces"
String fullURI = servletRequest.getRequestURI();
13
ответ дан 24 November 2019 в 16:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: