Jsf El Expression getter和setter ArrayList

时间:2014-01-11 00:23:55

标签: java jsf jsf-2 arraylist

我在支持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

1 个答案:

答案 0 :(得分:1)

JSF正在生命周期中工作(请参阅JSF lifecycle with example)。此生命周期的第一部分之一是获取用户发送的输入,验证它并将其推送到JSF对象树中。

因此,当您将h:inputText s值与托管bean属性相关联时,此字段将使用用户在前端执行的输入进行更新(当它通过验证时,输入字段位于h:form)。

集合访问运算符([]运算符)适用于您为数组和集合描述相同的情况(ArrayList实现集合)。