使用 Spring Boot 从复选框列表中获取选定的值到控制器

亚历克斯·阿尔盖

我正在使用带有 Thymeleaf 的 Spring Boot 作为查看器,并且我想从表中删除所有选定的项目。因此,我需要向控制器传递一个包含选定复选框中的值的列表。

这是我的控制器方法:

@PostMapping("/admin/rates/prices/delete")
public String delete(@ModelAttribute Rate price, ServletWebRequest request){

    if(request.getParameterValues("idChecked") != null){
        for(String idCheckedStr : request.getParameterValues("idChecked")){
            int idrate = Integer.getInteger(idCheckedStr);
            rateRepository.deleteRate(idrate);
            } 
    }
    return "redirect:/admin/rates/prices";
}

我得到一个空指针异常:

java.lang.NullPointerException: null
at com.rentalwebs.controllers.rates.PriceListController.delete(PriceListController.java:42)

我认为这种方法应该收集值::

request.getParameterValues("idChecked")

这是表单中的一行,它使用 Thymeleaf 注释创建每个复选框:

<input type="checkbox" th:name="idChecked" th:value="${price.idrate}"/>

这是表单的视图代码:

<form th:action='@{/admin/rates/prices/delete}'
      method="POST"
      th:object="${rate}">

     <button type="submit" name='delete' value="delete"
             class='btn btn-secondary btn-sm'
             th:text="#{delete}"
             data-toggle="tooltip" data-placement="right"
             th:title="#{delete.selected}">
     </button>

     <p></p>
     <table class='table table-sm responsive'>
           <thead class='thead-default'>
                <tr>
                    <th><input type="checkbox" id="checkAll"/></th>
                    <th th:text='#{from}'></th>
                    <th th:text='#{to}'></th>
                    <th th:text='#{price}'></th>
                </tr>
           </thead>
           <tbody>
                  <tr th:each="price : ${prices}">
                      <td>
                          <input type="checkbox" th:name="idChecked" th:value="${price.idrate}"/>
                      </td>
                      <td th:text="${#temporals.format(price.datefrom, 'dd/MM/yyyy')}"></td>
                      <td th:text="${#temporals.format(price.dateto, 'dd/MM/yyyy')}"></td>
                      <td th:text="${price.price} + '&nbsp; €'"></td>                                        
                  </tr>
           </tbody>
     </table>
</form>

预先感谢您的帮助 :-)

亚历克斯·阿尔盖

这是解决方案的代码,取自评论:

@PostMapping("/admin/rates/prices")
public String delete(@RequestParam("idChecked") List<String> idrates){

    if(idrates != null){
        for(String idrateStr : idrates){
            int idrate = Integer.parseInt(idrateStr);
            rateRepository.deleteRate(idrate);
            } 
    }
    return "redirect:/admin/rates/prices";
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 thymeleaf、spring boot 获取复选框列表的值

控制器未使用Spring Boot和Thymeleaf从HTML的跨度中接收值

使用Spring + Thymeleaf从表中的选定复选框获取ID

如何使用Spring Boot创建404控制器?

使用方面的 Spring Boot 角色验证控制器

Spring Boot将参数从列表传递到控制器

如何在Thymeleaf中使用复选框实现Multi Select Drop Down并向Spring控制器显示所选值

如何在Spring MVC控制器中接收HTML复选框值

从spring控制器类中的jsp检索多个复选框值

尝试在控制器Spring Boot上使用@Autowire存储库时获取NoSuchBeanDefinitionException?

无法将基于Thymeleaf的UI表单中的值绑定到Spring Boot中的控制器

在启动时从文件中读取数据以在 Spring Boot 中的控制器中使用

在Spring Boot 1.41中将@WebMcvTest与@PathVariable带注释的控制器结合使用

如何使用angularjs通过控制器获取和传递多个复选框值到服务器端(php)

使用pathvariable从URL获取ID的Spring Boot

使用JSP进行Spring Boot,获取异常

使用Spring Boot发布JSON值的麻烦

无法使用Ajax将选定的复选框ID传递给控制器方法

在Spring Boot中无法使用@Value注释

使用JTDS在Spring Boot中配置HikariCP

使用Jquery Ajax将模型和2个复选框列表发布到控制器

Spring Boot CSRF使用

使用 Spring Boot 的 BasicAuth

使用Spring Boot的AOP

使用 Spring Boot 的 Jaeger

使用JavaFx的Spring Boot

在控制器中获取选定的值 - jsp/spring

Spring Boot 应用程序 - 如何根据当前对象将数据(列表中的列表)从控制器传递到 Thymeleaf?

在Spring Boot应用程序中如何使用模型数据从一种控制器方法重定向到另一种方法