Jsf 在嵌套属性上设置h:inputText值不会';行不通

Jsf 在嵌套属性上设置h:inputText值不会';行不通,jsf,jsf-2,Jsf,Jsf 2,给定以下Java类A: public class A { private String s1; private String s2; /// getters and setters } 我想将其用作JSFbean的成员: @ManagedBean public class Bean { private A a; public A getA () { return a; } public void setA

给定以下Java类A:

public class A {

    private String s1;

    private String s2;

    ///  getters and setters

}
我想将其用作JSFbean的成员:

@ManagedBean
public class Bean {

    private A a;

    public A getA () {
        return a;
    } 

    public void setA(A a) {
        this.a = a;
    }

}
要能够在.xhtml中以以下方式使用它:

<h:inputText id="s1" value="#{bean.a.s1}" />  
<h:inputText id="s2" value="#{bean.a.s2}" /> 


这对我不起作用,可能吗?否则,我将不得不在类Bean中声明A的每个成员。

在managedbean中应该是初始对象,如Leo所说

或者,通过构造函数初始化对象

@ManagedBean
public class Bean {

    private A a;

    public Bean(){
        a = new A();
    }

    public A getA () {
        return a;
    } 

    public void setA(A a) {
        this.a = a;
    }

}
还是施工后

@ManagedBean
public class Bean {

    private A a;

    @PostConstruct
    public void init() {
        a = new A();
    }

    public A getA () {
        return a;
    } 

    public void setA(A a) {
        this.a = a;
    }

}

好吧,应该行得通。至少对我有用。也许你忘了创建一个新的实例?像私人A=新A();