Thymeleaf获取复选框参数和回显

<div class="col-sm-8">
   <input type ="checkbox" name="yxxq"
         th:each ="role : ${xqglList}"
         th:value="${role.id}"
         th:text ="${role.xqmc}"
         th:attr ="checked=${yxxqList.contains(role.id)?true:false}">
</div>

1.首先获取复选框的值


@PostMapping("/edit")
    public String editSave(PsyRyxx psyRyxx,@RequestParam("yxxq") String[] yxxq) {
        
    }

这里在参数上加上@RequestParam注解,获取的是String数组名称与复选框的name属性相同即可

2.回显

@GetMapping("/edit/{id}")
    public String edit(@PathVariable("id") String id, ModelMap mmap) {
        PsyRyxx psyRyxx = psyRyxxService.selectPsyRyxxById(id);
        List<PsyXqgl> xqglList = psyXqglService.selectPsyXqglList(new PsyXqgl());
        List<String> yxxq = psyYxxqService.selectPsyYxxqByZyid(psyRyxx.getXm());
        List<Integer> yxxqList  = new ArrayList<>();
        //类型转换
        for(String xq :yxxq){
            yxxqList.add(Integer.valueOf(xq));
        }
        mmap.put("psyRyxx", psyRyxx);
        mmap.put("xqglList", xqglList);
        mmap.put("yxxqList", yxxqList);
        return prefix + "/edit";
    }

回显时传多了一个参数yxxqList是List<String>的集合,用于是否被选中的判断,另一个是xqglList参数为复选框内容,这里有个先问题就是要类型转换,Thymeleaf可以是使用java里的函数,之前因为数据库中的id存储类型不一致,导致无法判断正确。使用 checked=${yxxqList.contains(role.id)?true:false}即使list的cantains函数,然后th:arrt添加属性checked=true or false

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值