java - 在 JSP 中使用复选框时出现索引顺序问题

标签 java jsp

我已经使用 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 将包含所选月份的不同文字作为值,janapr,等等。

我认为this article也可能有帮助。

关于java - 在 JSP 中使用复选框时出现索引顺序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68318872/

相关文章:

java - 为什么 www.twitter.com 有时使用 InetAddress/getHostAddress() 返回不同的 IP 地址?

java - 如何强制 jarsigner 签署 jar 文件?

java - Java中全透明窗口的形状刷新

java - 刷新时重置 scriplet 变量

javascript - 如何将 Spring 表单设置为只读?

java - 使用自定义适配器获取已检查的项目

java - 使用 Jackson 将作为列表或对象的 JSON 内容解析为 List<A>

java - 使用struts2迭代器在jsp中显示多个图像

spring - 我如何在 Spring 阻止音频(mic)控件

java - Servlet 映射问题 - 我做错了什么?