我已经使用 jsp form:checkbox 定义了行和列,如下面的代码所示。我正在使用 List 来捕获条目。使用 form:checkbox 的问题是它没有正确索引。当我使用 form:input 时,输入索引是正确的。我可以做些什么来正确捕获索引吗?通过索引,我的意思是当我输入 form:input 时,我看到变量“a”有 12 个值,并且还显示了未输入的值,但是使用 form:checkbox 我看不到 12 个值,并且顺序是随机的。
Controller 中的代码
private List<String> a;
JSP 中的代码
<tr>
<th class="text-center">JAN</th>
<th class="text-center">FEB</th>
<th class="text-center">MAR</th>
<th class="text-center">APR</th>
<th class="text-center">MAY</th>
<th class="text-center">JUN</th>
<th class="text-center">JUL</th>
<th class="text-center">AUG</th>
<th class="text-center">SEP</th>
<th class="text-center">OCT</th>
<th class="text-center">NOV</th>
<th class="text-center">DEC</th>
</tr>
<tr>
<td><form:checkbox path="a" value="Y"/></td>
<td><form:checkbox path="a" value="Y"/></td>
<td><form:checkbox path="a" value="Y"/></td>
<td><form:checkbox path="a" value="Y"/></td>
<td><form:checkbox path="a" value="Y"/></td>
<td><form:checkbox path="a" value="Y"/></td>
<td><form:checkbox path="a" value="Y"/></td>
<td><form:checkbox path="a" value="Y"/></td>
<td><form:checkbox path="a" value="Y"/></td>
<td><form:checkbox path="a" value="Y"/></td>
<td><form:checkbox path="a" value="Y"/></td>
<td><form:checkbox path="a" value="Y"/></td>
</tr>
最佳答案
在您的实现中,您只会在 List
中收到已选中的复选框的值,没有任何顺序。
请注意实际的复选框值,而不是关注索引。试试这个:
<tr>
<th class="text-center">JAN</th>
<th class="text-center">FEB</th>
<th class="text-center">MAR</th>
<th class="text-center">APR</th>
<th class="text-center">MAY</th>
<th class="text-center">JUN</th>
<th class="text-center">JUL</th>
<th class="text-center">AUG</th>
<th class="text-center">SEP</th>
<th class="text-center">OCT</th>
<th class="text-center">NOV</th>
<th class="text-center">DEC</th>
</tr>
<tr>
<td><form:checkbox path="a" value="jan"/></td>
<td><form:checkbox path="a" value="feb"/></td>
<td><form:checkbox path="a" value="mar"/></td>
<td><form:checkbox path="a" value="apr"/></td>
<td><form:checkbox path="a" value="may"/></td>
<td><form:checkbox path="a" value="jun"/></td>
<td><form:checkbox path="a" value="jul"/></td>
<td><form:checkbox path="a" value="aug"/></td>
<td><form:checkbox path="a" value="sep"/></td>
<td><form:checkbox path="a" value="oct"/></td>
<td><form:checkbox path="a" value="nov"/></td>
<td><form:checkbox path="a" value="dec"/></td>
</tr>
当用户提交信息时,您的a
List
将包含所选月份的不同文字作为值,jan
,apr
,等等。
我认为this article也可能有帮助。
关于java - 在 JSP 中使用复选框时出现索引顺序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68318872/