Target Unreachable,标识符在 JSF 2.2 中解析为 null [重复]

问题描述 投票:0回答:3

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

“值=”#{userBean.user.name}”:目标无法到达,标识符'userBean'解析为空“

这是我的经理豆。

@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>
jsf jsf-2.2 managed-bean
3个回答
24
投票

我想分享我对这个异常的体验。我的 JSF 2.2 应用程序在 WildFly 8.0 上运行良好,但有一次,当我启动服务器时,我遇到了这个“目标无法访问”异常。实际上,JSF 注释或标签没有问题。

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

我希望这会帮助别人!


14
投票
  1. 你需要

    @ManagedBean(name="userBean")

  2. 确保你有

    getUser()
    方法。

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

  4. 确保

    User
    班级也有适当的
    setters
    getters


14
投票

我解决了这个问题。

我的 Java 版本是 1.6,我发现它在 CDI 中使用 1.7,但是之后我将 Java 版本更改为 1.7 并导入包

javax.faces.bean.ManagedBean
,一切正常。

右键单击项目 > 属性 > Java 编译器 > 确保安装在类路径中的 Java 版本与 java 编译器相同。 谢谢@PM77-1


© www.soinside.com 2019 - 2024. All rights reserved.