0
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 成员变量的代码。但是该值为空。为什么?

4

1 回答 1

1

似乎您误解了@ManagedProperty的用法

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

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

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

private String firstName = "defaultValue";

或者

初始化firstName你的值@PostConstruct

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

看看这个例子......

在 JSF 2.0 中注入托管 bean

于 2012-08-21T18:55:42.007 回答