2013-08-02 70 views
1

我會做一個Managed Bean的東西,但我不」找到一個解決方案 爲了解釋什麼,我會盡我將展示一個小例子:託管屬性的對象列表中從一個bean

我創建具有下列結構

public class Data implements Serializable{ 
    private static final long serialVersionUID = 5156829783321214340L; 
    String value=""; 

    public Data() { 
    } 

    public String getValue() { 
     return value; 
    } 

    void setValue(String data) { 
     this. value = data; 
    } 
} 

一個對象的數據你可以IST簡單dataholder看到一個屬性 現在我創建了一個謝勝利對象whitch將是我的豆只保存數據的對象列表

public class Databean implements Serializable{ 

    private static final long serialVersionUID = 9205700558419738494L; 

    private ArrayList<Data> datalist; 

    public Databean() 
    { 
     datalist = new ArrayList<Data>(); 
     Data newItem; 
     for (int i=0; i<5; i++) { 
      newItem = new Data(); 
      datalist.add(newItem); 
     } 
    } 

    public ArrayList<Data> getDatalist() { 
     return datalist; 
    } 

    public void setDatalist(ArrayList<Data> datalist) { 
     this.datalist = datalist; 
    } 

} 

在faces-config來發布豆宣言是沒有問題的

<managed-bean> 
    <managed-bean-name>managedBean</managed-bean-name> 
    <managed-bean-class>de.itwu.Databean</managed-bean-class> 
    <managed-bean-scope>view</managed-bean-scope> 
</managed-bean> 

所以現在我的問題: 我想創建一個託管屬性或別的東西,使到inputText

的連接

在repreat控制如:

<xp:repeat value="#{managedBean.datalist}" var="rowData"> 
    <xp:inputText id="inputText1" defaultValue="#{rowData.value}"></xp:inputText> 
</xp:repeat> 

沒有任何人有一個想法,這是怎麼工作的?

所以經過了很多修正,但它沒有在數據對象中顯示Ich設置Datualt值。但是,當我編輯Inputtextfields中的值時,它們不會自動寫回對象。我面臨的問題是面孔配置中的缺陷。想法?

+0

@ per-henrik-lausten在他的博客上有一個很好的教程。 http://per.lausten.dk/blog/2012/02/creating-your-first-managed-bean-for-xpages.html –

回答

1

重複指定給var(rowData)的變量將包含Data類的一個實例。要將每個輸入控件綁定到指向該屬性的值字段。由於您定義了getValue()和setValue(),所以將創建一個值綁定,您將能夠編輯內容。如果只定義了getValue()方法,則會創建一個方法綁定並且該字段將不可編輯。

<xp:repeat value="#{managedBean.datalist}" var="rowData"> 
    <xp:inputText id="inputText1" value="#{rowData.value}"></xp:inputText> 
</xp:repeat> 
+0

所以我糾正了輸入文本中的數據綁定。但是,當我在頁面中的字段中更改值時,它不會自動寫回數據對象。難道這是面孔 - 配置需要更多的文字,如管理的屬性文本等? –

+0

現在好了清除多米諾骨牌服務器的緩存後,現在一切正常 –

0

你的綁定是錯誤的。

<xp:repeat value="#{managedBean.datalist}" var="rowData"> 
    <xp:inputText id="inputText1" defaultValue="#{rowData.value}"></xp:inputText> 
</xp:repeat> 

rowData包含數據對象,它填充的getter/setter用於現場value,不datavalue

相關問題