1

我是 JSF 的新手,不知道发生了什么。
我不断收到此错误:/index.xhtml @12,80 value="#{LoginBean.username}": Target Unreachable, identifier 'LoginBean' resolve to null

我已将问题归结为...

索引.xhtml

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html">

    <h:head>
        <title>JSF 2.0 LoginApp</title>
</h:head>
    <h:body>
        <h2>JSF 2.0 Login App</h2><br/>
        <h:form>
            Username: <h:inputText id="username" value="#{LoginBean.username}">  //error here
            </h:inputText> <br/><br/>
            Password: <h:inputSecret id="password" value="#{LoginBean.password}">  //and error here
            </h:inputSecret> <br/><br/>
            <h:commandButton action="response.xhtml" value="Login" type="Submit"></h:commandButton>
        </h:form>


    </h:body>
</html>

响应.xhtml

    <html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html">
    <h:head>
        <title>Login Response</title>
    </h:head>
    <h:body>
        <h:outputText id="result" escape="false" value="#{LoginBean.authenticate}"/>
    </h:body>
</html>

登录Bean.java

public class LoginBean {
private String username;
private String password;
}
4

4 回答 4

2

你应该在jsf EL中修复你的bean名称。我认为你没有给你的bean命名。因此在jsf EL中,你的bean名称必须以小写开头。这是jsf默认的。

更改value="#{LoginBean.username}"value="#{loginBean.username}"

于 2013-10-09T11:06:24.173 回答
2

不再使用 Managedbean。

改用 CDI

将此添加到您的类 @RequestScoped 之上(来自 javax.enterprise.context.RequestScoped )@Named("LoginBean")

有关详细信息,请参阅http://docs.oracle.com/javaee/6/tutorial/doc/gjbnr.html

于 2013-10-09T09:59:40.560 回答
1

确保你的 bean 有

  1. 注释@ManagedBean(确保使用import javax.faces.bean.ManagedBean;)!
  2. 公共无参数构造函数
  3. 和的获取器和设置usernamepassword
于 2015-05-03T19:49:53.483 回答
0

确保您的 loginBean 使用@ManagedBean. 如果您的类名是LoginBean标识符,ELloginBean按照 java 约定而不是LoginBean

于 2013-10-09T09:56:21.747 回答