如果复选框值等于 arrayList 中的值,则选中复选框

Checking a checkbox if checkbox value equals value in an arrayList

我在我的 jsp 文件中使用了一个值数组列表,名为 "selectedMods"。 "selectedMods" 包含表单提交前先前选中的复选框的值。我希望在刷新表单时复选框保持选中状态。我的想法是,对于每个复选框项目,遍历先前选择的复选框的数组列表 "selectedMods",如果该复选框值等于先前在 "selectedMods" 中选择的任何一个,则检查该复选框。下面是显示复选框的代码:

 <c:forEach items="${modules}" var="module">
        <label class="checkbox"><input type="checkbox" name="moduleIds value="${module.id}"  /> ${module.title}</label>
 </c:forEach>

在 "value" 之后,我考虑添加如下内容:

 <c:if test="${selectedMods == ${module.id}">checked="checked"</c:if>

但我意识到如果不遍历列表就无法将值列表与单个值进行比较,而且我不确定从哪里开始。任何帮助深表感谢。

您可以构造一个已检查 select 输入的映射,其中条目的键是模块 ID,而不是您的条件类似于

<c:if test="${selectedMods.containsKey(module.id)}">