使用逻辑:使用String数组迭代

时间:2015-05-27 11:29:21

标签: java arrays struts taglib

我正在使用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中,这将起作用。

3 个答案:

答案 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>

希望这会对某人有所帮助,谢谢大家的帮助。