代码之家  ›  专栏  ›  技术社区  ›  Dmitris

jsf h的问题:commandbutton

  •  0
  • Dmitris  · 技术社区  · 17 年前

    我真的需要帮助。

    我在JSP文件中有一个简单的登录表单,我尝试在其中使用JSF和托管bean。 当我第一次启动页面时,它会显示内容,但是当按下提交按钮(h:commandbutton)时,我会得到一个错误。

    有人能告诉我我的密码有什么问题吗?

    错误:

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

    这是我的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>
    

    我的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
        }
     }
    

    我的脸配置XML

    <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>
    
    2 回复  |  直到 17 年前
        1
  •  2
  •   McDowell rahul gupta    17 年前

    这可能是问题所在:

    <f:validator validatorId="Login" />
    

    删除标签。

    这个 validatorId 属性值必须与 验证器ID A的元素 Validator 注册在 faces-config.xml文件 .

        2
  •  1
  •   Dogrizz    17 年前

    我对所要的豆子不太了解。您是否尝试将其更改为会话bean? 我猜这些bean需要一些您的代码所缺少的初始化。