我在支持bean内部使用了
private ArrayList<String> myList;
init(){
myList = new ArrayList<String>();
myList.add("XYZ");
}
public ArrayList<String> getMyList(){
return myList;
}
public setMyList(ArrayList<String> l){
myList = l;
}
提供xhtml
通过执行以下方式显示元素:
<h:outputText value="Item: " />
<p:inputText required="true" label="Item"
value="#{mybean.myList[0]}" />
当我显示页面时,我看到了值:
XYZ
在页面中。
所以我的问题是:
如果我没有在ArrayList中设置“XYZ”并且用户在p:inputText
内写入值“HKJ”,我将在位置0的服务器端myList
内找到预期的“HKJ” “?
我可以使用ArrayList
进行显示和设置值,还是必须使用String[]
?
你可以在这里找到类似的问题:
http://www.velocityreviews.com/forums/t303520-jsf-using-arrays-arraylist-in-the-backing-bean.html
答案 0 :(得分:1)
JSF正在生命周期中工作(请参阅JSF lifecycle with example)。此生命周期的第一部分之一是获取用户发送的输入,验证它并将其推送到JSF对象树中。
因此,当您将h:inputText
s值与托管bean属性相关联时,此字段将使用用户在前端执行的输入进行更新(当它通过验证时,输入字段位于h:form
)。
集合访问运算符([]
运算符)适用于您为数组和集合描述相同的情况(ArrayList
实现集合)。