logic:iterate 与字符串数组一起使用
Use of logic:iterate with String array
我正在使用 Struts 并需要迭代字符串数组列表,即
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
表示它正在打印完整的字符串数组,但我无法打印字符串数组的索引。
谁能帮我找出我的错误。
编辑
如果这根本不可能,请告知,因为我可以使用一些 bean 来实现同样的事情,比如
List<someBean> list = new ArrayList<someBean>();
数据我将保存在字符串数组中,我将保存在 bean 中,这将起作用。
您的 List 将字符串数组存储为对象,即 List list = new ArrayList();因此,当您遍历 List 时,它会为您提供 String[] ,它将包含多个元素,因为它是一个数组而不是单个元素元素,你将需要在它上面再应用一个循环来打印 string[] 中的值。
希望你明白我的意思。
看起来,您已经迭代了 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>
这是解决我问题的库
<%@ 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>
希望对大家有所帮助,谢谢大家的帮助。
我正在使用 Struts 并需要迭代字符串数组列表,即
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
表示它正在打印完整的字符串数组,但我无法打印字符串数组的索引。
谁能帮我找出我的错误。
编辑
如果这根本不可能,请告知,因为我可以使用一些 bean 来实现同样的事情,比如
List<someBean> list = new ArrayList<someBean>();
数据我将保存在字符串数组中,我将保存在 bean 中,这将起作用。
您的 List 将字符串数组存储为对象,即 List list = new ArrayList();因此,当您遍历 List 时,它会为您提供 String[] ,它将包含多个元素,因为它是一个数组而不是单个元素元素,你将需要在它上面再应用一个循环来打印 string[] 中的值。 希望你明白我的意思。
看起来,您已经迭代了 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>
这是解决我问题的库
<%@ 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>
希望对大家有所帮助,谢谢大家的帮助。