JSP:在JSP中重定向到xhtml

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP:在JSP中重定向到xhtml相关的知识,希望对你有一定的参考价值。

我想根据用户是否引入正确的密码重定向到两个不同的页面。我尝试了sendRedirectforward,但它没有用。我有一个具有条件的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**
    }
}

}        

谢谢你的帮助!

答案

使用ExternalContext#redirect

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 "";
}

以上是关于JSP:在JSP中重定向到xhtml的主要内容,如果未能解决你的问题,请参考以下文章

Jsp获取Java的重定向赋值(String)

在spring MVC中重定向期间传递模型属性并避免在URL中相同

jsp初识servlet转发转发与重定向的比较

JSP基础

Tomcat根据JSP生成Servlet机制解析

spring security 在重定向到 logout.jsp 时给出错误