目标不可访问,标识符在JSF 2.2中解析为null

目标不可访问,标识符在JSF 2.2中解析为null,jsf,jsf-2.2,managed-bean,Jsf,Jsf 2.2,Managed Bean,我的JSF2.2和CDI有问题,我的managerbean没有解决,出现了这个错误 value=“#{userBean.user.name}”:无法访问目标,标识符“userBean”解析为null 这是我的经理比恩。 我的看法是: <h:form id="login-form"> <h:outputText value="User"/> <h:inputText value="#{userBean.user.name}" id="username

我的JSF2.2和CDI有问题,我的managerbean没有解决,出现了这个错误

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

这是我的经理比恩。

我的看法是:

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

  • 你需要

    @ManagedBean(name=“userBean”)

  • 确保您有
    getUser()
    方法

  • setUser()
    方法的类型应为
    void

  • 确保
    User
    类也有适当的
    setter
    getter

  • 我解决了这个问题。 我的Java版本是1.6,我发现CDI使用的是1.7,但之后我将Java版本更改为1.7,并导入了javax.faces.bean.ManagedBean包,一切正常

    谢谢@PM77-1



    我想与大家分享我对这一例外的经历。我的JSF2.2应用程序在WildFly 8.0上运行良好,但有一次,当我启动服务器时,我遇到了这个“目标不可检查”的异常。实际上,JSF注释或标记没有问题

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


    我希望这能帮助别人

    默认情况下,bean名称将是userBean。。。不需要设置它。@AlexandreLavoie-你能让我参考官方文件来说明这个事实吗?第二段是的,setUser的类型是void,很抱歉我写这篇文章的时候错了。当我放置“(name=“userBean”)”时,会显示给我。请确保您正在从
    javax.faces.bean
    package导入此批注。您是否可能有
    faces config.xml
    ?您正在从哪个应用服务器导入这些批注,以及在哪个应用服务器上运行您的应用程序?确保您已正确执行完全清除,重建,重新部署。。。这是我在BalusC的帖子中省略的步骤,它解决了这个问题。安装两个不同的java版本也会导致这个错误。我遇到了同样的问题,并通过卸载其中一个得到了解决。对我来说,这个错误的发生是因为存在1个jar。一行一行地删除/重新添加每个jar到类中,才能确定我右键单击server>clean不起作用。我不知道是什么让它工作,但我在项目上单击了重新启动(而不是服务器)。这在我身上发生过几次,有时清理项目解决了它,有时重新启动glassfish Worked也有同样的问题,对我来说,重新启动和清理都不起作用。但是在重新启动Eclipse之后,一切恢复正常。我的问题是一样的,只是我必须停止服务器,清理服务器并重新启动它。我可以确认,如果这个异常突然出现,而您的项目在前一天正常工作时,可能是开发人员机器的内存不足。如果您反复将计算机关闭到挂起或休眠模式,并且长时间(如数周)不重新启动或关机,则可能会发生这种情况。最好在断电的情况下重新启动,这会有所帮助。如果您在有状态VM上工作,同样的情况也是有效的。操作系统和IDE的类型也在其中发挥作用
    <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>