0

我的 jsp 页面中有一个 HTML 表格。这包括文本字段和下拉框。从我的 servlet 中,我想传递一个名为myData.

因此,我尝试使用 foreach 将数据传输到我的 html 表中:

<table border="1" >
  <c:forEach items="${myData}" var="result">
  <tr>
    <td><input name="from0" type="text" value="${result}"/></td>
  </tr>

  <tr>
     <td>
    <select name="from8" id="from8" value="${result}">
       <option>Yes</option>
       <option>No</option>
    </select>
      </td>
  </tr>
  </c:forEach>
</table>

arraylist 是一个简单的字符串数组列表:

ArrayList<String> output = new ArrayList<String>();
//populate arraylist with values here

//forward the arraylist of strings
request.setAttribute("myData ", output);
request.getRequestDispatcher("Home.jsp").forward(request, response);

不幸的是,输出生成了多个表,其值都对应于我的数组列表中的每个元素。

4

1 回答 1

1

根据您提供的信息,我试图恢复您的情况。老实说,我不能那样做。这是我的恢复尝试:

<%
    ArrayList output = new ArrayList();
    output.add("Yes");
    output.add("No");
    request.setAttribute("myData", output);
%>
<table border="1">
  <c:set var="counterVar" value="0"/> //added because form field names and ids -in genral- must be unique.
  <c:forEach items="${myData}" var="result">
  <tr>
    <td><input name='from<c:out value="${counterVar}"/>_text' type="text" value='<c:out value="${result}"/>'></td>
  </tr>

  <tr>
     <td>
    <select name='from<c:out value="${counterVar}"/>_select' id='from<c:out value="${counterVar}"/>' value='<c:out value="${result}"/>'>
       <option value="Yes">Yes</option>
       <option value="No">No</option>
    </select>
      </td>
  </tr>
  <c:set var="counterVar" value="${counterVar + 1}"/>
  </c:forEach>
</table>

这会生成一个好看的表格。您能否提供有关您的问题的示例链接?

于 2012-07-02T13:53:16.727 回答