【问题标题】:Checking a checkbox if checkbox value equals value in an arrayList如果复选框值等于 arrayList 中的值,则检查复选框
【发布时间】:2015-03-07 22:33:15
【问题描述】:

我在名为“selectedMods”的 jsp 文件中使用了一个值数组列表。 “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>

在“价值”之后,我想添加这样的内容:

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

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

【问题讨论】:

    标签: html jsp spring-mvc checkbox arraylist


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的快速回复。为了在我的 jsp 文件中使用它,我必须在我的控制器中进行哪些更改?为无知道歉,我对此有点陌生。
    • 基本上不是填充列表,而是填充映射,您存储在列表中的值,存储为映射条目的键,条目的随附值可以是任意的' 仅检查密钥是否存在。比将您的地图放在模型而不是列表中。如果您找不到自己的方式,您可以将您的控制器方法添加到您的问题中,您可以将列表存储在模型中
    • 还有一件事。在设置地图并将其添加到 jsp 后,我得到:“当未指定默认命名空间时,函数 containsKey 必须与前缀一起使用”。有什么想法吗?
    • 我不确定这是否可行。它一直在该行抛出错误。还有其他方法吗?
    • 在我看来,这是最好的办法,添加你的方法代码,并改变jsp sn ​​-p,不看代码不知道是什么导致你的其他问题
    猜你喜欢
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    相关资源
    最近更新 更多