2014-10-02 82 views
-1

考慮下面的Java類答:設置H:在嵌套屬性的inputText值不起作用

public class A { 

    private String s1; 

    private String s2; 

    /// getters and setters 

} 

我想用它作爲JSF的Bean的成員:

@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中聲明每個成員。

+2

很好,它應該工作。至少爲我工作。也許你忘了創建一個新的A實例?像私人A a =新A(); – Leo 2014-10-02 01:21:00

回答

2

在你的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; 
    } 

} 

或postConstruct初始你的對象

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

} 
相關問題