springmvc中form:checkboxes默认选中多个值

项目需求

修改学生信息,一个学生可能有多种爱好,点修改的时候,让这个学生的所有爱好默认选中。

遇到的问题

数据库中爱好的存取方式是以逗号分割的,当该学生有一个爱好的时候,就能默认选中,但如果有多种爱好,全部都不默认选中了。
在这里插入图片描述

在这里插入图片描述

解决方案

爱好在实体类中使用字符串存的,改为字符串数组一步到位!!!
代码如下:
实体类Emp.java

package text.vo;
import java.util.Date;
import java.util.List;

public class Emp {
    private int empid;
    private String ename;
    private String esex;
    private String hobby;
    private Date ebrithday;
    private int pid;
    private String pname;
    private int mgr;
    private String[] hobbys;
    private List<String> sbrithday;
    
    public String[] getHobbys() {
        return hobbys;
    }
    public void setHobbys(String[] hobbys) {
        this.hobbys = hobbys;
    }
    public List<String> getSbrithday() {
        return sbrithday;
    }
    public void setSbrithday(List<String> sbrithday) {
        this.sbrithday = sbrithday;
    }
    public Emp() {
    }
    public int getMgr() {
        return mgr;
    }
    public void setMgr(int mgr) {
        this.mgr = mgr;
    }
    public String getPname() {
        return pname;
    }
    public void setPname(String pname) {
        this.pname = pname;
    }
    public String getHobby() {
        return hobby;
    }
    public void setHobby(String hobby) {
        this.hobby = hobby;
    }
    public int getEmpid() {
        return empid;
    }
    public void setEmpid(int empid) {
        this.empid = empid;
    }
    public String getEname() {
        return ename;
    }
    public void setEname(String ename) {
        this.ename = ename;
    }
    public String getEsex() {
        return esex;
    }
    public void setEsex(String esex) {
        this.esex = esex;
    }
    public Date getEbrithday() {
        return ebrithday;
    }
    public void setEbrithday(Date ebrithday) {
        this.ebrithday = ebrithday;
    }
    public int getPid() {
        return pid;
    }
    public void setPid(int pid) {
        this.pid = pid;
    }
}

控制器:

@RequestMapping("toempupdate")
    public String toEmpUpdate(@ModelAttribute Emp emp,Model model){
    	//获取需要修改用户的id值
        int empid = emp.getEmpid();
        //查出该用户的所有信息
        Emp emp1 = empService.findEmpById(empid);
        int pid = emp1.getPid();
        //为单选框设置值
        List<String> esex = new ArrayList<String>();
        esex.add("男");
        esex.add("女");
        //获取该用户的所有爱好
        String str = emp1.getHobby();
        //以逗号分割并存进字符串数组中
        String[] strs =str.split(",");
        emp1.setHobbys(strs);
        //为复选框赋值
        List<String> hobbys = new ArrayList<String>();
        hobbys.add("篮球");
        hobbys.add("足球");
        hobbys.add("LOL");
        hobbys.add("睡觉");
        hobbys.add("吃饭");
        hobbys.add("乒乓球");
        //以下是时间的转换
        Format format = new Format();
        String ebrithday = format.dateToString(emp1.getEbrithday());
        //将集合以及对象映射到jsp页面
        List<Dept> list = deptMapper.findAll1();
        model.addAttribute("emp1",emp1);
        model.addAttribute("esex",esex);
        model.addAttribute("ebrithday",ebrithday);
        model.addAttribute("list",list);
        model.addAttribute("pid",pid);
        model.addAttribute("hobbys",hobbys);
        return "empupdate";
    }

jsp:

<%@ page import="java.util.List" %>
<%@ page import="text.vo.Dept" %>
<%@ page import="org.apache.ibatis.annotations.Delete" %>
<%@ page import="org.springframework.beans.factory.config.DependencyDescriptor" %>
<%@ page import="org.apache.ibatis.annotations.Insert" %><%--
  Created by IntelliJ IDEA.
  User: admin
  Date: 2019/6/28
  Time: 9:08
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<html>
<head>
    <title>Title</title>
    <script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-1.3.1.js"></script>
</head>
<body>
    <%
        List<Dept> list = (List<Dept>) request.getAttribute("list");
        int pid = (int) request.getAttribute("pid");
    %>
    <form:form method="post" modelAttribute="emp1" action="${pageContext.request.contextPath}/emp/empupdate">
        <form:hidden path="empid" /><br />
        雇员姓名:<form:input path="ename"/><br />
        性别:<form:radiobuttons path="esex" items="${esex}" /><br />
        爱好:<form:checkboxes path="hobbys" items="${hobbys}"  /><br />
        入职时间:<input type="date" value="${ebrithday}" name="ebrithday" /><br />
        <input type="submit" value="提交" />
    </form:form>
</body>
</html>

最终效果:
在这里插入图片描述

发布了328 篇原创文章 · 获赞 110 · 访问量 47万+

猜你喜欢

转载自blog.csdn.net/qq_42249896/article/details/94039692