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>

希望对大家有所帮助,谢谢大家的帮助。