1

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

如您所见,现在是一个具有一个属性的简单数据持有者,我创建了一个第二个对象,它将成为我的 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;
    }

}

在 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>

所以现在我的问题是:我想创建一个托管属性或其他东西来连接到输入文本

在重复控制中,例如:

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

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

因此,示例已更正,但在显示的数据对象中设置 Datualt 值时它不起作用。但是当我编辑 Inputtextfields 中的值时,它们不会自动写回对象。我认为问题在于 Faces-Config 中的 Daclaration。想法?

4

2 回答 2

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>
于 2013-08-04T15:07:15.037 回答
0

你的绑定是错误的。

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

rowData包含 Data 对象,它为 field 填充 getter/setter value,而不是datavalue.

于 2013-08-02T14:33:28.283 回答