在 JSF 中为成员变量设置默认值时出错


package no.northcreek.mabjo;
import javax.annotation.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
@ManagedBean
@RequestScoped
public class indexBean {
    @ManagedProperty(value="defaultValue")
    private String firstName;
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }  
}

所以上面是我希望创建默认值为"defaultValue"的第一个 firstName 成员变量的代码。但是,该值为空。为什么?

看来你误解了@ManagedProperty的用法

@ManagedProperty注释用于将一个受管 Bean 的依赖关系注入 (DI( 到另一个受管 Bean 的属性中。

并注意应该指向一个ELxpression,像这样value="#{someBean}"

在您的情况下,您应该执行以下操作

private String firstName = "defaultValue";

@PostConstruct中初始化firstName

@PostConstruct
public void init() {
  firstName = "defaultValue";
}

看看这个例子...

在 JSF 2.0 中注入受管 Bean

最新更新