JSP 仅 foreach 中的选项标签 returns 第一个值
JSP option tag in foreach only returns first value
我有一个带有下拉框的表单,我正在使用 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 方法还设置了 class 中从索引派生的其他三个变量的值(如果有任何不同的话)。
不确定我是否遗漏了一些明显的东西,但我们将不胜感激。
如果您使用 .index
,它将从 0 开始计数。
如果您使用 .count
,它将从 1 开始计数。
关于显示输出,我没有发现您的代码有任何问题。显示的输出是什么?
在 <select>
标记中,分配的名称参数是提交表单时传递的变量的名称。这意味着在<jsp:setProperty>
标签的值字段中,应该使用这个名称值作为参数值,即
<jsp:setProperty name="department" property="index" value="${param:depts}"/>
我有一个带有下拉框的表单,我正在使用 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 方法还设置了 class 中从索引派生的其他三个变量的值(如果有任何不同的话)。
不确定我是否遗漏了一些明显的东西,但我们将不胜感激。
如果您使用 .index
,它将从 0 开始计数。
如果您使用 .count
,它将从 1 开始计数。
关于显示输出,我没有发现您的代码有任何问题。显示的输出是什么?
在 <select>
标记中,分配的名称参数是提交表单时传递的变量的名称。这意味着在<jsp:setProperty>
标签的值字段中,应该使用这个名称值作为参数值,即
<jsp:setProperty name="department" property="index" value="${param:depts}"/>