Xpages 从bean将托管属性添加到列表中的对象

Xpages 从bean将托管属性添加到列表中的对象,xpages,jsf-1.2,Xpages,Jsf 1.2,我想用托管Bean做点什么,但我找不到解决方案 为了解释我将要做什么,我将展示一个小例子: 我创建了一个具有以下结构的对象数据 public class Data implements Serializable{ private static final long serialVersionUID = 5156829783321214340L; String value=""; public Data() { } public String getV

我想用托管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是一个具有一个属性的简单数据保持器 现在我创建了一个secound对象,它将成为我的bean,它只保存一个数据对象列表

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

}
公共类数据库实现了可序列化{
私有静态最终长serialVersionUID=920570558419738494L;
私有ArrayList数据列表;
公共数据库()
{
datalist=newarraylist();
数据新建项;
对于(int i=0;i您的绑定是错误的

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

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

您的绑定错误

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


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

在repeat to var(rowData)中分配的变量将包含数据类的实例。要将每个输入控件绑定到值字段,请引用该属性。因为您有一个getValue()并定义了setValue(),将创建一个值绑定,您将能够编辑内容。如果只定义了getValue()方法,将创建一个方法绑定,并且该字段将不可编辑

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

在repeat to var(rowData)中指定的变量将包含数据类的实例。要将每个输入控件绑定到值字段,请引用该属性。由于定义了getValue()和setValue(),因此将创建值绑定,并且您将能够编辑内容。如果只有getValue()方法已定义。如果创建了方法绑定,则该字段将不可编辑

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


@per henrik lausten在他的博客上有一个很好的教程。@per henrik lausten在他的博客上有一个很好的教程。所以我更正了Inputtext中的数据绑定。但是当我在页面的字段中更改一个值时,它不会自动写回数据对象。是不是faces配置需要一些更多的文本,比如managed propert text还是这样?在清除domino服务器的缓存后,现在一切正常。因此,我更正了Inputtext中的数据绑定。但当我更改页面字段中的值时,它不会自动写回数据对象。可能是faces配置需要更多的文本,如托管属性文本或其他文本吗?现在一切正常对domino服务器的缓存进行环化