今天完成了empAdd功能,到这里,HRMS的基本功能已完成,涉及emp和dept的增删改查基本功能。
编程过程中遇到的问题总结如下:
前台:
1. Ajax通过将表单序列化 data:$(".update_emp_form").serialize()
注意
- 表单每一项的 name 与对应的实体类属性名一致
可以通过alert()方法打印表单序列化后的内容,如下图
2. ajax传输数据具体代码
$(function(){
//=======0 点击 员工新增按钮,发送AJAX请求查询部门列表信息,弹出模态框,
$(".emp_add_btn").click(function(){
$.ajax({
url:"/SSM_HRMS/dept/queryDeptName",
typt:"GET",
success:function(result){
if(result.code==100){
$.each(result.extendInfo.departmentList,function(){
var optionEle=$("<option></option>").append(this.deptName).attr("value",this.deptId);
optionEle.appendTo("#add_department");
});
}
}
});
$(".emp-add-modal").modal({
backdrop:false,
keyboard:true
});
});
//2验证
//3保存
$(".emp_save_btn").click(function(){
alert($(".add_emp_form").serialize());
$.ajax({
url:"/SSM_HRMS/emp/addEmp",
type:"POST",
data:$(".add_emp_form").serialize(),
success:function(result){
if(result.code == 100){
alert("新增成功");
$('.emp-add-modal').modal("hide");
$.ajax({
success:function(){
window.location.href="/SSM_HRMS/emp/queryAllEmps";
}
});
}else {
alert(result.extendInfo.add_emp_error);
}
}
});
});
});
3. JSP文件内部引入其他的Jsp文件,他们的‘’头信息”格式内容要一致,如下图
否则报错,如下图(画质有点。。。)
后台:
1. mapper文件
xml文件中的SQL语句 #{} 使用employee表示传入的对象,需要在mapper.java文件中的参数添加@Param(“employee”),否则mybatis会将employee当成Employee类的一个属性,报以下错误
2. 后台接收表单序列化的代码如下
@RequestMapping(value="/addEmp",method=RequestMethod.POST) @ResponseBody public JsonMsg addEmp(Employee employee) { int res=0; // System.out.println(employee.getDeptId()); // System.out.println(employee.getEmpName()); // System.out.println(employee.getGender()); res=employeeService.addEmp(employee); if(res!=1) { return JsonMsg.fail().addInfo("add_emp_error", "员工信息添加失败!"); } return JsonMsg.success(); }
3. 若后台接收的前台对象类的数据(表单数据),后台进行打印数据内容时,一般通过调用toString()方法实现。但oString方法中需要打印的属性值 在实际传来的数据中并不存在 ,后台调用toString方法后,极有可能报空指针异常,需注意。