部门dept的添加
添加部门使用的是选择部门方式,所以要先把所有的部门查出来赋值给页面才能选择
查询所有的部门
TestDeptService
@Test
public void test02(){
String companyId="1";
List<Dept> list=service.findAll(companyId);
l.info("list=="+list);
}
IDeptService
List<Dept> findAll(String companyId);
DeptServiceImpl
@Override
public List<Dept> findAll(String companyId) {
List<Dept> list=dao.findAll(companyId);
return list;
}
IDeptDao和IDeptDao.xml中写过findAll方法
DeptController
@RequestMapping(path = "/toAdd",method = {RequestMethod.GET,RequestMethod.POST})
public String toAdd(Model model,@RequestParam(defaultValue = "1") String companyId){
//需要为下拉菜单查询出所有的部门,一个部门对应一个选项
//根据companyId查询出部门,不做分页
l.info("companyId=="+companyId);
List<Dept> list=service.findAll(companyId);
l.info("list=="+list);
model.addAttribute("list",list);
return "system/dept/dept-add";
}
给jsp页面赋值 dept-add.jsp
<div class="col-md-10 data line-height36">
<select class="form-control" name="parent.id">
<option value="">请选择</option>
<c:forEach items="${list}" var="item">
<option value="${item.deptId}">${item.deptName}</option>
</c:forEach>
</select>
</div>
添加部门
TestDeptService
@Test
public void test03(){
Dept dept=new Dept();
dept.setCompanyId("1");
dept.setDeptName("java部门");
dept.setState(1);
Dept parent=new Dept();
parent.setDeptId("100101101");
dept.setParent(parent);
service.saveDept(dept);
}
IDeptService
void saveDept(Dept dept);
DeptServiceImpl
@Override
public void saveDept(Dept dept) {
String id= UUID.randomUUID().toString();
dept.setDeptId(id);
dao.save(dept);
}
IDeptDao
void save(Dept dept);
IDeptDao.xml
<insert id="save" parameterType="dept">
insert into pe_dept
(
dept_id ,
dept_name ,
parent_id ,
state ,
company_id ,
company_name
)
values
(
#{deptId },
#{deptName },
#{parent.deptId },
#{state },
#{companyId },
#{companyName}
)
</insert>
DeptController
@RequestMapping(path = "/add",method = {RequestMethod.POST})
public String add(Dept dept, String parentId){
//需要为下拉菜单查询出所有的部门,一个部门对应一个选项
//根据companyId查询出部门,不做分页
l.info("dept=="+dept);
l.info("parentId=="+parentId);
dept.setCompanyId("1");
Dept parent=new Dept();
parent.setDeptId(parentId);
dept.setParent(parent);
service.saveDept(dept);
return "redirect:/system/dept/toList.do";
}
dept-add.jsp
<form id="editForm" action="${path}/system/dept/add.do" method="post">
因为实体类中没有parentId的变量,所以页面提交的parentId不能被接收,所以单独定义一个参数来接收