我的jsp页面中有一个HTML表格。这包含文本字段和下拉框。
从我的servlet中,我想传递一个名为myData
的字符串的arraylist。
因此我尝试使用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:
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);
不幸的是,输出会生成多个表,这些表的值都与我的arraylist中的每个元素相对应。
答案 0 :(得分: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>
这会产生一个好看的表格。你能提供一个问题的示例链接吗?