Question

J'ai vraiment besoin d'aide sur celui-ci.

J'ai un formulaire de connexion simple fichier jsp, et je tente d'utiliser JSF et les haricots gérés avec elle. Quand je première page de feu, il affiche ce contenu, cependant, quand appuyez sur le bouton d'envoi (h: commandButton). Je reçois une erreur

Quelqu'un peut-il me dire ce qui ne va pas avec mon code?

Erreur:

javax.servlet.ServletException: javax.faces.FacesException: Expression Error: Named Object: Login not found.
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)

Voici mon JSP:

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<f:view>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h:form id="login">
            <h:messages tooltip="true" />
            <h:inputText id="userNaME" required="true" requiredMessage="User name is required" value="#{Login.userName}" >
                <f:validator validatorId="Login" />
            </h:inputText><br />
            <h:inputSecret id="userPassword" required="true" value="#{Login.userPassword}" requiredMessage="User Password is required" /><br />
            <h:commandButton id="Login" title="Login" type="submit" action="#{Login.LoginUser}" />
            <h:message for="Login" style="color: green;" />
        </h:form>
    </body>
</html>
</f:view>

Ma classe Bean:

package myvalidators;

public class Login {
    private String _userName;
    private String _userPassword;

    public void setUserName(String userName)
    {
        this._userName = userName;
    }

    public String getUserName()
    {
        return this._userName;
    }

    public void setUserPassword(String userPassword)
    {
        this._userPassword = userPassword;
    }

    public String getUserPassword()
    {
        return this._userPassword;
    }

    public String LoginUser()
    {
        return this._userName;
        //going to perform a login here
    }
 }

Et mon xml visages-config

<managed-bean>
        <managed-bean-name>Login</managed-bean-name>
        <managed-bean-class>myvalidators.Login</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
Était-ce utile?

La solution

Ceci est probablement le problème:

<f:validator validatorId="Login" />

Supprimer la balise.

validatorId valeur d'attribut doit correspondre à la validateur-id élément d'un Validator enregistré dans faces-config.xml .

Autres conseils

Je ne sais pas beaucoup sur les haricots demandés. U ont essayé de le changer pour bean session? Je pense que les haricots ont besoin d'initialisation qui n'a pas votre code.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top