2012-05-31 43 views
1

有了一個簡單的類至極只包含一個字符串列表的列表中,我可以看到它在p:dataTable所有元素與類List的get(int)方法,但是當我嘗試與p:dataExporter導出此失敗零件。Primefaces Dataexporter並獲得方法

這裏的Java源代碼:

@ManagedBean 
@SessionScoped 
public class MainClass { 

private List<ArrayList<String>> listOfListOfString; 

public List<ArrayList<String>> getListOfListOfString() { 
    return listOfListOfString; 
} 

public void setListOfListOfString(List<ArrayList<String>> listOfListOfString) { 
    this.listOfListOfString = listOfListOfString; 
} 

public MainClass() { 
    listOfListOfString = new ArrayList<ArrayList<String>>(); 
    ArrayList<String> firstList = new ArrayList<String>(); 
    firstList.add("a"); 
    firstList.add("b"); 
    listOfListOfString.add(firstList); 
    ArrayList<String> secondList = new ArrayList<String>(); 
    secondList.add("1"); 
    secondList.add("2"); 
    listOfListOfString.add(secondList); 
} 
} 

而且XTHML代碼:

<h:body> 
    Hello from Facelets 
    <h:form prependId="false"> 
     <p:dataTable id="tbl" var="myList" value="#{mainClass.listOfListOfString}" paginator="true" rows="10" > 
      <p:column headerText="First column"> 
       <h:outputText value="#{myList.get(0)}"/> 
      </p:column> 
      <p:column headerText="Second column"> 
       <h:outputText value="#{myList.get(1)}"/> 
      </p:column> 
     </p:dataTable> 

     <h:commandLink value=" csv"> 
      <p:dataExporter type="csv" target="tbl" fileName="userList" /> 
     </h:commandLink> 
    </h:form> 
</h:body> 

當我點擊CSV鏈路上的錯誤堆棧:

For input string: "get" 
- Stack Trace 

java.lang.NumberFormatException: For input string: "get" 
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) 
at java.lang.Integer.parseInt(Integer.java:449) 
at java.lang.Integer.parseInt(Integer.java:499) 
at javax.el.ListELResolver.coerce(ListELResolver.java:173) 
at javax.el.ListELResolver.getType(ListELResolver.java:72) 

你有一個想法,爲什麼p:dataTable可以使用get(int)方法和p:dataExporter不能?

感謝,

菲利普

回答

2

大概兩個組件均已不同的方式實現。

但你可以訪問列表元素是這樣的:

#{myList[n]} 

其中n是列表索引。

+0

完美。有用!但奇怪的是get()方法不能用於List對象。 –

+0

好聽。請不要忘記將我的答案標記爲已接受(點擊問題左側的複選標記)。 –