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
不能?
感谢,
菲利普
完美。有用!但奇怪的是get()方法不能用于List对象。 –
好听。请不要忘记将我的答案标记为已接受(点击问题左侧的复选标记)。 –