在JSF中导航

Mic*_*ael 3 java navigation jsf

早上好!我是新手.我有一个简单的JSF应用程序.但它没有按预期工作.这是我的login.xhtml:

<h:body>
    <h:outputText value="Please enter your login and password"/>
    <h:form id="loginForm">
        <h:panelGrid columns="2">       
                <h:outputText value="User name"/>                   
                <h:inputText value="#{textBean.login}" required="true"/>
                <h:outputText value="Password"/>
                <h:inputSecret value="#{textBean.password}" required="true"/>
                <h:commandButton value="Submit" action="#{textBean.doLogin}"/>
        </h:panelGrid> 
    </h:form>
</h:body>
Run Code Online (Sandbox Code Playgroud)

这是我的error.xhtml:

<h:body>
    <h:outputText value="You have entered incorrect data"/>
    <h:form id="errorForm">    
                <h:commandLink value="Back to login page" action="#{TextBean.backToLogin}"/>
    </h:form>
</h:body>
Run Code Online (Sandbox Code Playgroud)

这是我的bean类TextBean.java:

公共类TextBean实现Serializable {

private static final long serialVersionUID = 1L;

private String login;

private String password;

public String getLogin() {
    return login;
}

public void setLogin(String login) {
    this.login = login;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

public String doLogin() {
    if ("admin".equals(login) && "mypass".equals(password)) {
        return "welcome";
    } else {
        return "error";
    }

}

public String backToLogin() {
        return "login";
}
Run Code Online (Sandbox Code Playgroud)

}

为什么错误页面不会返回登录页面?当您点击"返回登录页面"链接时,我得到了例外.我究竟做错了什么?这是我的例外:

        The server encountered an internal error () that prevented it from fulfilling this request.
javax.servlet.ServletException: javax.el.PropertyNotFoundException: /error.xhtml @14,80 action="#{TextBean.doMyLogin}": Target Unreachable, identifier 'TextBean' resolved to null
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:521)
javax.faces.el.EvaluationException: javax.el.PropertyNotFoundException: /error.xhtml @14,80 action="#{TextBean.doMyLogin}": Target Unreachable, identifier 'TextBean' resolved to null
    javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:95)
    com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
    javax.faces.component.UICommand.broadcast(UICommand.java:315)
    javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:787)
    javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1252)
    com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:508)
javax.el.PropertyNotFoundException: /error.xhtml @14,80 action="#{TextBean.doMyLogin}": Target Unreachable, identifier 'TextBean' resolved to null
    com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:107)
        javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
    com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
    javax.faces.component.UICommand.broadcast(UICommand.java:315)
    javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:787)
    javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1252)
    com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:508)
Run Code Online (Sandbox Code Playgroud)

亲爱的朋友,请帮帮我!任何帮助将不胜感激.

Pet*_*hev 6

你的bean的名字textBean不是TextBean.这就是为什么JSF无法解决它:identifier 'TextBean' resolved to null