我有一个带有下拉框的表单,我使用foreach循环用sql查询返回的值填充它。它应该通过varStatus属性返回循环的索引。这是代码:
<form action="response.jsp">
<strong>Select a Department:</strong>
<select name="depts">
<c:forEach var="dept" items="${departments.departments}" varStatus="loop">
<option value="${loop.index}">${dept}</option>
</c:forEach>
<input type="submit" value="submit" name="submit" />
</form>
正在正确填充下拉列表,但是当按下提交时,只返回第一个索引,即无论选择哪个选项,只返回第一个值。
接收返回值的代码是
<jsp:setProperty name="department" property="index" value="${param.loop.index}"/>
索引的setter方法还设置了类中从索引派生的其他三个变量的值,如果这会产生任何差异。
不确定我是否错过了一些显而易见的事情,但我们将不胜感激。
答案 0 :(得分:0)
如果您使用debug
,它将从0开始计数。
如果您使用.index
,它将从1开始计数。
我没有看到代码中有关显示输出的任何问题。无论如何,显示的输出是什么?
答案 1 :(得分:0)
在<select>
标记中,分配的name参数是提交表单时传递的变量的名称。这意味着在<jsp:setProperty>
标记的值字段中,此名称值应该用作参数值,即
<jsp:setProperty name="department" property="index" value="${param:depts}"/>