没有jsf<;h:数据表>;取两次数据?

没有jsf<;h:数据表>;取两次数据?,jsf,tags,datatable,Jsf,Tags,Datatable,我正在使用JSF2.0。我想使用h:dataTable,我意识到当我在浏览器中打开视图时,dataTable中的函数from value会被调用两次 我对此感到困惑,我不知道我做错了什么。也许这是正常的行为(?)。请帮忙 它将进入System.out.println(“getList”)2次。是吗? 这是我的代码。 Bean类: package com.sonicwall.es.bean; import java.util.ArrayList; import java.util.List;

我正在使用JSF2.0。我想使用h:dataTable,我意识到当我在浏览器中打开视图时,dataTable中的函数from value会被调用两次

我对此感到困惑,我不知道我做错了什么。也许这是正常的行为(?)。请帮忙

它将进入System.out.println(“getList”)2次。是吗?

这是我的代码。

Bean类:

package com.sonicwall.es.bean;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;

@ManagedBean
public class UserBean {

private List<String> list=new ArrayList<String>();

public UserBean() {
    list.add("Tom");
    list.add("Andy");
}

public List<String> getList() {
    System.out.println("getList");
    return list;
}

public String getString() {
    System.out.println("getString");
    return "String";
}
package com.sonicwall.es.bean;
导入java.util.ArrayList;
导入java.util.List;
导入javax.faces.bean.ManagedBean;
@ManagedBean
公共类用户bean{
私有列表=新的ArrayList();
公共用户bean(){
列表。添加(“Tom”);
列表。添加(“安迪”);
}
公共列表getList(){
System.out.println(“getList”);
退货清单;
}
公共字符串getString(){
System.out.println(“getString”);
返回“字符串”;
}
}

查看

字符串:

 <h:outputText value="#{userBean.string}" />    

名单:



在JSF生命周期中可以多次调用getter。我认为回答一个类似的问题可以帮助你。这也很有用。

谢谢,你提到的链接很有用!
<h:dataTable cellpadding="10" cellspacing="0" border="5"
    value="#{userBean.list}" var="item">
  <h:column>        
    <h:outputText value="#{item}">
    </h:outputText>         
  </h:column>   
</h:dataTable>