首页 > 解决方案 > JSF 错误:目标无法访问,标识符“bean”解析为 null

问题描述

我在 Java EE 中使用 CDI,但它似乎不起作用。

我有一个非常简单的示例,其中包含 2 个文本字段。输入名称并提交时,输入的名称应出现在下一页上。

在此处输入图像描述

但相反,我收到以下错误:

HTTP Status 500 - Internal Server Error

javax.servlet.ServletException: /index.xhtml @12,72 value="#{userBean.firstName}": Target Unreachable, identifier 'userBean' resolved to null

javax.el.PropertyNotFoundException: /index.xhtml @12,72 value="#{userBean.firstName}": Target Unreachable, identifier 'userBean' resolved to null

javax.el.PropertyNotFoundException: Target Unreachable, identifier 'userBean' resolved to null

这些是我的 3 个文件:

索引.xhtml

<h:form>
    <h:panelGrid columns="2">
        <h:outputLabel value="First name" for="firstName"/>
        <h:inputText id="firstName" value="#{userBean.firstName}"/>


        <h:outputLabel value="Last name" for="lastName"/>
        <h:inputText id="lastName" value="#{userBean.lastName}"/>
      <h:commandButton action="result" value="send"/>
    </h:panelGrid>
</h:form>

结果.xhtml

First name: #{userBean.firstName}
Last name: #{userBean.lastName}

用户Bean.java

import javax.enterprise.context.RequestScoped;
import javax.inject.Named;

@Named
@RequestScoped
public class UserBean {

    private String firstName;
    private String lastName;

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

}

标签: javajsfjakarta-eeglassfishcdi

解决方案


推荐阅读