2009-05-17 11 views
0

私は本当にこの1つの助けが必要です。JSFの問題h:commandButton

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

そして、私の顔-config設定の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

これはおそらく問題です:

<f:validator validatorId="Login" /> 

は、タグを削除します。

validatorId

属性値は、面-config.xmlのに登録Validatorバリ-ID要素に対応しなければなりません。

+0

私は解決策を見つけました。あなたが言ったのはまさに問題でした。 私は一日中それを理解するために私を取った、私は彼らがより詳細なJavaエラーメッセージを行うことを望む。 とにかく、ありがとう! – Dmitris

1

私は要求された豆についてよく分かりません。セッションBeanのためにそれを変更しようとしましたか? 私の推測では、それらのBeanはあなたのコードに欠けている初期化を必要としています。

+0

これは問題ではありませんでしたが、とにかく助けてくれてありがとう。 – Dmitris

関連する問題