我会用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。想法?
答案 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
。