在Thymeleaf中执行Java方法,实现CheckBox的自选中

今天在开发中遇到了一个需求就是页面返回的时候让checkbox回显的,本来用JS来写并没有什么难度的。但是要使用Thymeleaf就变得有些复杂。thymeleaf有一个特性就是可以在标签中执行Java的方法。

<label class="checkbox-inline i-checks"  th:each="data : ${list}">  
    <input th:attr="checked=${methodService.contains(data.id,proofsList)?true:false}" type="checkbox" name="proofs[]"  th:value="${data.id}" id="inlineCheckbox1" />
</lable>

这里主要说明一下这个methodService.contains方法,它接受两个参数一个是id,一个是list

public class MethodService {

    public boolean contains(String id,List<Proof> proofs){
        System.out.println(proofs);
        List<String> ids = new ArrayList<>();
        for(Proof p: proofs){
           ids.add(p.getId());
        }
        return (ids.contains(id));
    }
}

这一步很重要 你要把这个调用的类放到Request域中,或者Session中,当然页面取值的时候也是不相同的。在Session中取值如下:session.proofsList

 MethodService md = new MethodService();
 mmap.put("methodService",md);
 mmap.put("proofsList",proofsList);

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值