2011-03-24 54 views
0

我正在使用JSF 2.0。我想使用h:dataTable,並且我意識到當我在瀏覽器中打開視圖時,來自dataTable中的值的函數被調用2次。jsf <h:datatable>獲取數據兩次?

我很困惑,我不知道我做錯了什麼。也許這是正常的行爲(?)。請幫忙。

它會去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"; 
} 

}

查看

字符串:

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

列表:

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

回答