托管来自bean的列表中的Object的属性

时间:2013-08-02 13:06:31

标签: xpages jsf-1.2

我会用Managed 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;
    }
}

正如您所看到的,它是一个具有一个属性的简单数据持有者 现在我创建了一个对象whitch将是我的bean,它只保存一个Data Objects列表

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中的声明发布bean没有问题

<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的连接

在一个重新控制中,例如:

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

有没有人知道这如何运作?

如此纠正,但它不会在它们显示的数据对象中设置Ich ich设置的Datualt值。但是当我编辑Inputtextfields中的值时,它们不会自动写回Object。我认为问题是Faces-Config中的Daclaration。想法?

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

你的绑定是错误的。

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

rowData包含数据对象,该字段填充字段value的getter / setter,而不是datavalue