我正在使用Struts,需要迭代字符串数组列表i-e
List<String[]> list = new ArrayList<String[]>();
我正在使用此代码进行迭代
<logic:iterate name="myForm" id="syncStringArrayId" property="list">
<tr>
<td><bean:write name="syncStringArrayId" /></td>
<td>2nd column should be index 1 of string array</td>
<td>3rd column should be index 2 of string array</td>
</tr>
</logic:iterate>
但当我执行此代码时,它会打印:
Column1 Colmn2 Column3
[Ljava.lang.String;@2803cc Col2-Data Col3-Data/value
表示正在打印完整的字符串数组,但我无法打印字符串数组的索引。
任何人都可以帮我找错。
修改
请告知这是否完全不可能,因为我可以使用一些豆来实现同样的事情,如
List<someBean> list = new ArrayList<someBean>();
和数据即将保存在String数组中我将保存在bean中,这将起作用。
答案 0 :(得分:0)
你的List将字符串数组存储为对象,即List list = new ArrayList();所以当你遍历List时,它会给你String [],它会实际包含多个元素,因为它是一个数组,而不是单个元素,你需要在它上面再应用一个循环来打印string []中的值。 希望你有我想说的话。
答案 1 :(得分:0)
看起来,你已经迭代了List
,但错过了迭代String array
。
请你试试:
<table>
<logic:iterate name="myForm" id="syncStringArrayId" property="list" indexId="indexId">
<tr>
<td><bean:write name="indexId" /></td>
<logic:iterate name="syncStringArrayId" id="strValue">
<td><bean:write name="strValue" /></td>
</logic:iterate>
</tr>
</logic:iterate>
</table>
答案 2 :(得分:0)
这是lib解决了我的问题
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
我使用forEach循环来迭代列表。
<c:forEach items="${myForm.list}" var="bean">
<tr>
<td><c:out value="${bean[0]}" /></td>
<td><c:out value="${bean[2]}" /></td>
<td><c:out value="${bean[1]}" /></td>
</tr>
</c:forEach>
希望这会对某人有所帮助,谢谢大家的帮助。