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 メンバー変数を作成することを期待しているコードです。ただし、値は null です。なんで?

4

1 に答える 1

1

@ManagedPropertyの使い方を誤解しているようです

@ManagedProperty アノテーションは、マネージド Bean を別のマネージド Bean のプロパティに依存性注入 (DI) するために使用されます。

次のように、値が 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 に答える