Spring MVC中checkboxes用法实例

痛定思痛。 2022-06-02 05:09 252阅读 0赞

一、简单概述:

items要求为集合,是所有选择框的选项

path也要求为集合,是所有已选择框的选项

checkboxes 得到的数据是集合,数据库保存的是字符串,所以需要手动转

二、例如:

1、model.java

  1. /**
  2. *对应数据库中需要的真实字段
  3. */
  4. private String proGnvq;/**
  5. * 对应数据库中需要的真实字段 */ private String cyInnovationFunds;/**
  6. * 用于前端checkboxes展示省级项目资质集合 伪字段数据库不存在 */ private List<String> gavqList;/** * 用于前端checkboxes展示国家级项目资质集合 伪字段数据库不存在 */ private List<String> cyList; public List<String> getGavqList() { return gavqList; } public void setGavqList(List<String> gavqList) { this.gavqList = gavqList; } public List<String> getCyList() { return cyList; }

2、ctl层

表单查看与编辑页面方法

  1. public String form(GovQualification govQualification, Model model) { String gavq = govQualification.getProGnvq(); String cy = govQualification.getCyInnovationFunds(); //把复选框String值转行成list 页面展示 List<String> gavqList = CommonMethods.getCheckBoxsList(gavq); List<String> cyList = CommonMethods.getCheckBoxsList(cy); govQualification.setGavqList(gavqList); govQualification.setCyList(cyList); model.addAttribute("govQualification", govQualification); return "modules/cust/govQualificationForm"; }

编辑保存与新增保存方法

public String save(GovQualification govQualification, Model model, RedirectAttributes redirectAttributes) {

  1. if (!beanValidator(model, govQualification)) {
  2. return form(govQualification, model);
  3. }
  4. //获取表单复选框值解析list拼成String 保存到数据库 govQualification.setProGnvq(CommonMethods.getCheckBoxsString(govQualification.getGavqList()));
  5. govQualification.setCyInnovationFunds(CommonMethods.getCheckBoxsString(govQualification.getCyList()));
  6. govQualification.setStatisticalTime(new Date());
  7. govQualificationService.save(govQualification);
  8. addMessage(redirectAttributes, "保存政府资质成功");
  9. return "redirect:" + Global.getAdminPath() + "/cust/govQualification/?repage"; }

集合与String转换工具方法 /\**

  1. * Description:获取复选框String转化成list * * @Param checkBoxs 要解析的字符串 * Created by syz on 2018/1/4 0004 12:55 */ public static List<String> getCheckBoxsList(String checkBoxs) {
  2. List<String> list = new ArrayList<>();
  3. if (StringUtils.isNotEmpty(checkBoxs)) {
  4. if (checkBoxs.indexOf(",") != -1) {
  5. String[] arr = checkBoxs.split(",");
  6. for (int i = 0; i < arr.length; i++) {
  7. list.add(arr[i]);
  8. }
  9. } else {
  10. list.add(checkBoxs);
  11. }
  12. }
  13. return list;
  14. }
  15. /** * Description:获取复选框list转化成String * * @Param checkBoxs 要解析的字符串 * Created by syz on 2018/1/4 0004 12:55 */ public static String getCheckBoxsString(List<String> list) {
  16. StringBuffer sb = new StringBuffer();
  17. if (list != null) {
  18. if (list.size() > 0 && list.size() == 1) {
  19. return list.get(0);
  20. } else {
  21. sb.append(list.get(0));
  22. for (int i = 1; i < list.size(); i++) {
  23. sb.append("," + list.get(i));
  24. }
  25. return sb.toString();
  26. }
  27. }
  28. return "";
  29. }
  30. }

3.前端jsp

<div**class=**”form-group”>

  1. <label class="col-sm-2 control-label">省级项目资质</label>
  2. <div class="col-sm-10">
  3. <form:checkboxes path="gavqList" items="${ fns:getDictList('proGnvq')}" itemLabel="label" itemValue="value" htmlEscape="false" class=""/>
  4. </div>
  5. </div>
  6. <div class="form-group">
  7. <label class="col-sm-2 control-label">承担国家项目</label>
  8. <div class="col-sm-10">
  9. <form:checkboxes path="cyList" items="${ fns:getDictList('canGnvq')}" itemLabel="label" itemValue="value" htmlEscape="false" class=""/>
  10. </div>
  11. </div>

这里的path对应的就是实体类中集合伪字段(也就是获取数据库中已选的值) items对应的是从字典变获取的所有选项(这里个人用自定义标签方式获取的,可根据自己的方式, 只要是集合或map即可。具体传list还是map 可根据 http://blog.csdn.net/linhaiyun\_ytdx/article/details/65449134[点击打开链接][Link 2]有具体案例 )

参看文献:http://blog.csdn.net/qq\_18783269/article/details/64440599

http://blog.csdn.net/linhaiyun\_ytdx/article/details/65449134

发表评论

表情:
评论列表 (有 0 条评论,252人围观)

还没有评论,来说两句吧...

相关阅读