Oturum açma sayfasına yönlendirdiğiniz noktada, geçerli istek URI'sini kaydetmeniz gerekir. Giriş kontrolünü ve yönlendirmeyi gerçekleştirmek için büyük olasılıkla bir Filter
kullanıyorsunuzdur. Bu durumda, mevcut istek URI elde etmek HttpServletRequest#getRequestURI()
kullanabilirsiniz:
String requestURI = request.getRequestURI();
Sen yönlendirme URL'sinde bir istek parametre olarak iletin veya oturum içinde saklayın olabilir ya. bir istek parametresi olarak Geçme güvenlisidir: giriş sayfası ile ilişkilendirilmiş fasulye olarak
response.sendRedirect(request.getContextPath() + "/login.jsf?from=" + URLEncoder.encode(requestURI, "UTF-8"));
, yönetilen bir özellik veya bir görünüm parametresi olarak ayarlayabilirsiniz. Fasulyenin iyi ajax eylemleri/doğrulamaları ve benzerlerini gerçekleştirebilmeniz için kapsamlı olduğunu varsayalım. Gerçek giriş başarılı Sonra
<f:metadata>
<f:viewParam name="from" value="#{login.from}" />
</f:metadata>
, sen ExternalContext#redirect()
tarafından o URI yönlendirebilir: Bu durumda, görünüm parametre yalnızca düzgün bir yoludur
public void login() throws IOException {
// ...
FacesContext.getCurrentInstance().getExternalContext().redirect(from);
}
(gerekirse tedarik a from
'un olduğu varsayılan hedef için varsayılan hedef
Tam olarak ne demek istediğiniz açık değildir. Ne demek "* xxx.detail.jsf" ise, giriş sayfasına yönlendirecektir * "? – Lion
@Lion, kullanıcı giriş yapmadan önce bir sayfaya (örn: detail.jsf) erişmeye çalışıyorsa, sistem kullanıcıyı giriş sayfasına yönlendirir ve kullanıcının istediği sayfaya (ör: detail.jsf) yeniden yönlendirir. kullanıcı sisteme başarılı giriş yaptıktan sonra erişim. –