目标无法访问,标识符在JSF 2.2中解析为null

时间:2013-12-10 20:32:24

标签: jsf jsf-2.2 managed-bean

我遇到了JSF 2.2和CDI的问题,我的managerbean没有解决,而且出现了这个错误

  

“value =”#{userBean.user.name}“:目标无法访问,标识符'userBean'已解析为null”

这是我的经理bean。

@ManagedBean
@RequestScoped
public class UserBean implements Serializable {
    private User user;

    public void setUser(user) {
        this.user = user;
    }
    ...
}

我的观点是:

<h:form id="login-form">
    <h:outputText value="User"/>
    <h:inputText value="#{userBean.user.name}" id="username"/>

    <h:outputText value="Senha"/>
    <h:inputSecret value="#{userBean.user.password}" id="pasword"/>

    <h:commandButton id="button" value="Login" action="#{userBean.login}"/>

    <h:messages />
</h:form>

3 个答案:

答案 0 :(得分:19)

我想与此例外分享我的经验。我的JSF 2.2应用程序在WildFly 8.0中运行良好,但有一次,当我启动服务器时,我得到了这个&#34;目标难以解决的&#34; 异常。实际上,JSF注释或标签没有问题。

我唯一需要做的就是清理项目。完成此操作后,我的应用程序再次正常运行。

我希望这能帮助别人!

答案 1 :(得分:12)

  1. 您需要

    @ManagedBean(name="userBean")

  2. 确保您拥有getUser()方法。

  3. setUser()方法的类型应为void

  4. 确保User班级也有settersgetters

答案 2 :(得分:9)

我解决了这个问题。

我的Java版本是1.6,我发现它使用1.7和CDI,但之后我将Java版本更改为1.7并导入包javax.faces.bean.ManagedBean,一切正常。

谢谢@ PM77-1