项目需求
修改学生信息,一个学生可能有多种爱好,点修改的时候,让这个学生的所有爱好默认选中。
遇到的问题
数据库中爱好的存取方式是以逗号分割的,当该学生有一个爱好的时候,就能默认选中,但如果有多种爱好,全部都不默认选中了。
解决方案
爱好在实体类中使用字符串存的,改为字符串数组
一步到位!!!
代码如下:
实体类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>
最终效果: