我想根据用户是否引入正确的密码重定向到两个不同的页面。我尝试了sendRedirect
和forward
,但它没有用。我有一个具有条件的Managed Bean,以及必须根据条件显示的xhtml页面。
管理豆
@ManagedBean
@SessionScoped
public class datos {
private String usuario, contraseña, response=null;
public datos() {
}
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
public String getContraseña() {
return contraseña;
}
public void setContraseña(String contraseña) {
this.contraseña = contraseña;
}
public void getResponse() throws IOException{
if(contraseña.equals("1111"))
**REDIRECT TO PAGE 1**
else {
**REDIRECT TO PAGE 2**
}
}
}
谢谢你的帮助!
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
if(loginSuccess) {
externalContext.redirect(url1);
} else {
externalContext.redirect(url2);
}
有用!!如果它对其他人有帮助我实现了这个:进入JavaBean:
public void comprobarContraseña() throws IOException{
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
if(contraseña.equals("1111")) {
externalContext.redirect("tienda.xhtml");
} else {
externalContext.redirect("login.xhtml");
}
}
并在xhtml里面的commandButton中:
<h:commandButton id="submit" value="Envia" action="#{datos.comprobarContraseña}" />
谢谢你们!
如果你正在使用命令按钮/链接,你可以在Bean中编写一个动作方法。指定你的导航输出。
<h:commandButton value="login" action="#{yourBeanName.Login}"
在Managed Bean中
public String Login()
{
if(correct login credential)
{
return "success";
}
else
{
return "failure";
}
}
在faces-config.xml中编写适当的导航规则。
我希望这能解决你的问题。
代码从jsf到jsp和jsf。
<h:commandLink value="[#{msg['cancel.hyperlink']}]"
action="#{editSchemeHandlerCitiPost.redirectToSchemeList}"
immediate="false" />
public String redirectToSchemeList() throws IOException{
if(getServletRequest().getRequestURI()!=null && getServletRequest().getRequestURI().contains("editScheme.jsf"))//current page
{
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove("org.ajax4jsf.application.AjaxStateManager.VIEW_STATES_MAP");
FacesContext.getCurrentInstance().getExternalContext().redirect("/ns/jsp/jsf/close.jsf");
}else{
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove("org.ajax4jsf.application.AjaxStateManager.VIEW_STATES_MAP");
FacesContext.getCurrentInstance().getViewRoot().setViewId("/sch.do?actionKey=list");
FacesContext.getCurrentInstance().getExternalContext().redirect("/ns/sch.do?actionKey=list");
}
return "";
}