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

SaX*_*eTz 17 jsf managed-bean jsf-2.2

我有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;
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我的观点是:

<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>
Run Code Online (Sandbox Code Playgroud)

ake*_*lec 22

我想与此例外分享我的经验.我的JSF 2.2应用程序在WildFly 8.0中运行良好,但有一次,当我启动服务器时,我得到了这个"Target Unreacheable"异常.实际上,JSF注释或标签没有问题.

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

我希望这会对某人有所帮助!


PM *_*7-1 13

  1. 你需要

    @ManagedBean(name="userBean")

  2. 确保你有getUser()方法.

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

  4. 确保User类有适当的settersgetters也.

  • 确保从`javax.faces.bean`包中导入此批注. (3认同)
  • 默认情况下,bean 名称为 userBean...不需要设置它。 (2认同)

SaX*_*eTz 11

我解决了这个问题.

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

谢谢@ PM77-1