JSF @Named目标无法访问,标识符' * bean *'解析为null

时间:2016-09-13 01:27:57

标签: jsf

我查了许多其他线程有类似的问题,但我找不到这个错误。 CDI @Named与@ManagedBean没有冲突。 这是我使用的bean类。

@Named
@RequestScoped
public class UserBean {

    private String name;

    public UserBean() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String addValuesToFlashAction() {
        Flash flash = FacesContext.getCurrentInstance()
                .getExternalContext().getFlash();
        flash.put("name", name);
        return "terms?faces-redirect=true";
    }

    public void pullValuesFromFlashAction(ComponentSystemEvent e) {
        Flash flash = FacesContext.getCurrentInstance()
                .getExternalContext().getFlash();
        this.name = (String) flash.get(name);
    }
...
}

这是xhtml索引页面的主体

<h:body>
    <f:metadata>
        <f:event type="preRenderView"
                 listener="#{userBean.pullValuesFromFlashAction}"/>
    </f:metadata>
    <h:messages/>
    <h:form>
        Name: <h:inputText value="#{userBean.name}"/>
        <h:commandButton value="Register" 
                         action="#{userBean.addValuesToFlashAction()}"/>
    </h:form>
</h:body>

当我运行时,我有 /flashIndex.xhtml @ 12,72 listener =&#34;#{userBean.pullValuesFromFlashAction}&#34;:Target Unreachable,identifier&#39; userBean&#39;解析为null ,并在glassfish日志中抛出 javax.el.PropertyNotFoundException

1 个答案:

答案 0 :(得分:1)

解决: 我导入 javax.faces.bean.RequestScoped 而不是 javax.enterprise.context.RequestScoped