无法在JSF中设置成员变量的默认值

时间:2012-08-21 18:45:42

标签: jsf-2 managed-bean

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;
    }  
}

以上是我期望创建firstName成员变量的代码,其默认值为“defaultValue”。但是该值为null。为什么呢?

1 个答案:

答案 0 :(得分:1)

似乎你误解了 @ManagedProperty的使用

  

@ManagedProperty注释用于将托管bean依赖注入(DI)到另一个托管bean的属性中。

并注意 value 应指向ELxpression,如下所示:value="#{someBean}"

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

private String firstName = "defaultValue";

OR

firstName

中初始化@PostConstruct的值
@PostConstruct
public void init() {
  firstName = "defaultValue";
}

看一下这个例子......

Injecting Managed beans in JSF 2.0