Primefaces Dataexporter and get method



使用仅包含字符串列表列表的简单类,我可以使用类 List 的get(int)方法在p:dataTable中查看其所有元素,但当我尝试使用 p: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不能吗?

谢谢

菲 利 普

可能这两个组件的实现方式不同。

但是您可以通过以下方式访问列表元素:

#{myList[n]}

其中n是列表索引。

相关内容

最新更新