【问题标题】:How to delete an elements from a list in spring mvc如何从spring mvc中的列表中删除元素
【发布时间】:2016-05-08 09:24:13
【问题描述】:

在workers.jsp 我有:

    ....
    <form action="/workers" id="personForm" method="post" >

    <c:forEach items="${page.content}" var="row" varStatus="status">
    <tr>
    <td><input type="checkbox"/></td>
    <td>${row.name}</td>
                     ...
     <td>
    <input type='image' src='/pages/img/del.png' />
    <input type='hidden' name="removeid" value='${row.id}'/>
    </td>
    </tr>
    </c:forEach>
    </form>

当我点击输入时,${row.id} 转到:

   @RequestMapping(value = "/workers", method = RequestMethod.POST)
    public ModelAndView getAllByPage(@ModelAttribute("removeid") Long removeid, Model uiModel, Pageable pageable) {

    if(removeid!=null) {
       userService.remove(removeid);
    }

   ...

   } 

但在这种情况下 removeid 始终是第一个,它被添加到 jsp 页面中。 除此之外,如何获取id的数组,使用jsp删除很多项?

请帮帮我。

【问题讨论】:

    标签: java spring jsp spring-mvc


    【解决方案1】:

    您可以编写 1 个单独的 REST 端点来删除多个项目。 示例:

    public List<Long> deleteMultiple(List<Long> toBeDeleted){
        deleteService(toBeDeleted);
        return toBeDeleted;
    }
    

    您可以使用多个 IDE 通过 AJAX 调用此端点并刷新您的页面。

    【讨论】:

    • 谢谢!我会使用它)但是问题的第二部分是如何将 id 收集到 List?
    • 常见的做法是在模型中包含List&lt;MyObj&gt;。它不能是long 的列表,因为您需要通过勾选复选框来更改单个 obj 的状态。所以MyObj 类可能会有一个属性id 和一个属性checked。因此,在foreach 语句中,您将遍历列表,为每个obj 创建一行,其checked 属性将绑定到复选框项目。如果您在管理 jsp 中的列表方面需要帮助,请查看 this。
    • 您可以在 REST 端点中使用 @RequestParam。示例: public List deleteMultiple(@RequestParam(value = "toBeDeletedIds", required = false, defaultValue = "") Long[] toBeDeletedIds){ deleteService(toBeDeleted);返回被删除; }
    猜你喜欢
    • 2021-02-12
    • 2021-03-10
    • 2010-10-13
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    相关资源
    最近更新 更多