tl; dr: Мой вопрос действительно может быть возобновлен до того, как я обновляю страницу через String (когда параметры получения неизвестны)?redirect после входа в систему для входа в систему
Я два сценария входа в систему пользователей:
- неаутентифицированное доступа пользователя на страницу, которая защищена он перенаправлены на страницу входа в систему. При входе в систему он перенаправляется на страницу, к которой он прежде всего пытался получить доступ.
- неаутентифицированного пользователь нажимает на кнопке на моей странице, если пользователь неаутентифицированный будет отображать журнал в диалоговом
, например, как это:
<!-- user connected -->
<p:commandButton action="#{pollVoteBean.vote}" value="#{strings.Vote}" rendered="#{userNav.isUserConnected}"/>
<!-- user disconnected -->
<h:panelGroup rendered="#{!userNav.isUserConnected}">
<p:commandButton type="button" value="#{strings.Vote}" onclick="PF('regSign').show()"/>
<!-- if the user clicks here a log in dialog appears and he can log in. -->
</h:panelGroup>
Когда неаутентифицированное пользователь щелкает это выглядит:
Это то, что я использую на странице входа, чтобы перенаправить пользователя :
lastUrl = getCorrectUrl(((String) FacesContext.getCurrentInstance()
.getExternalContext().getRequestMap()
.get(RequestDispatcher.FORWARD_REQUEST_URI)));
if (null != lastUrl && !"/signin".equals(lastUrl))
return lastUrl + "?faces-redirect=true";
else
return "/news?faces-redirect=true";
Однако для диалога я хотел бы обновить страницу. Как я могу изменить код выше, чтобы он выполнял оба сценария?
Я почти там, но я не могу получить правильный URL с параметрами (которые являются неизвестными, конечно):
lastUrl = getCorrectUrl(((String) FacesContext.getCurrentInstance()
.getExternalContext().getRequestMap()
.get(RequestDispatcher.FORWARD_REQUEST_URI)));
currentUrl = FacesContext.getCurrentInstance().getViewRoot()
.getViewId();
if ("/signin".equals(currentUrl)) {
if (null != lastUrl && !"/signin".equals(lastUrl))
return lastUrl + "?faces-redirect=true";
else
return "/news?faces-redirect=true";
} else {
return currentUrl + "?faces-redirect=true";
}
(коды выше предполагает пользователь правильно аутентификацию). Также мой диалог dynamic="true"
.
@ Tiny В итоге я просто прошел легкий путь и разделил свою функцию на две части. Не могли бы вы рассказать мне, почему вы сказали, что это не правдоподобное требование? – Ced