在jsp到jstl中显示数组值时出错

时间:2015-02-09 12:29:36

标签: java arrays jsp

我有一个二维数组,它将结果集中的值保存为:

 while (rs.next())
                {
                    for( j=0; j<3; j++)
                    {
                            a[i][j] = rs.getString(j+1);
                    }

                    i++;
                }
              return a;

我在jsp页面中显示为 -

<select name="ref_name">
<c:forEach var="aff" items="${obj.connect()}">
<option value="${aff}">${aff}</option>
</c:forEach>
 </select>

其中obj是bean id,connect是返回String [] []的方法。但是当我运行它时,我得到的值是[Ljava.lang.String@381a9c。 我知道这是显示但不是值的数组的引用。如何纠正它?

1 个答案:

答案 0 :(得分:1)

当您尝试迭代Map时,您需要访问其键和值,

<select name="ref_name">
   <c:forEach var="aff" items="${obj.connect()}">
      <option value="${aff.key}">${aff.value}</option>
   </c:forEach>
</select>

将打印地图中的值。

修改

根据您在问题中的编辑来访问2D数组,只需在数组中迭代数组

 <select name="ref_name">
    <c:forEach var="aff" items="${obj.connect()}" >
        <c:forEach var="secondVar" items="${aff}" >
            <option value="${secondVar}">${secondVar}</option> // printing the value here
        </c:forEach>
    </c:forEach>
 </select>

希望这会有所帮助!!