SSM整合-03 信息新增、修改与删除

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bingbeichen/article/details/81320279

项目完整实现代码下载地址:https://download.csdn.net/download/bingbeichen/10578683。

该部分主要实现新员工信息的添加,实现步骤包括:

  • 在index.jsp页面点击“新增”按钮,弹出新增对话框;
  • 向数据库中查询全部部门名称列表,显示在对话框中;
  • 输入新员工数据,并进行校验(jQuery前端校验、Ajax姓名重复校验、重要数据后端JSR303校验、数据表唯一性约束);
  • 完成保存操作。

其中,新增员工的模态框如下所示:
这里写图片描述
注意:前端需要校验员工姓名与邮箱格式的正确性以及姓名是否冲突,后端采用JSR303校验同时进行校验,以防止用户恶意修改请求跳过前端校验。通常,还需要在数据库中对数据表添加约束,以确保数据格式的正确性。


该部分主要实现现有员工信息的修改,实现步骤包括:

  • 在index.jsp页面点击“编辑”按钮,弹出编辑对话框;
  • 向数据库中查询全部部门名称列表,显示在对话框中;
  • 向数据库中查询当前员工的详细信息,显示在对话框中;
  • 修改当前员工的邮箱、性别和部门信息,校验邮箱格式是否合法;
  • 点击“更新”按钮,完成保存操作。

注意:

//发送PUT请求,保存信息
$.ajax({
	url : "${WEB_PATH}/emp/" + $(this).attr("emp_id"),
	/* type : "POST",
	data : $("#update_emp_modal form").serialize() + "&_method=PUT", */
	
	/**
	 * 血案:请求体中含有数据,但处理器目标方法的入参中封装不上
	 *  Employee [id=1, lastName=null, gender=null, email=null, deptId=null]
	 * 原因:
	 *	1).Tomcat会将请求体中的数据封装为一个Map对象
	 *	2).request.getParameter("lastName")就会从这个Map对象中取值
	 *  3).SpringMVC封装POJO时,会采用request.getParameter()的方式
	 *
	 * 结论:Tomcat针对AJAX所发送的PUT请求不会封装请求体中的数据。
	 * 解决方案:
	 *	1).使用POST请求,在请求体数据中添加&_method=PUT,即
	 *		type : "POST",
	 *		data : $("#update_emp_modal form").serialize() + "&_method=PUT",
	 *  2).使用SpringMVC提供的HttpPutFormContentFilter过滤器即可。
	 */
	type : "PUT",
	data : $("#update_emp_modal form").serialize(), 
	success : function(result){
		// 关闭模态框
		$("#update_emp_modal").modal("hide");
		// 回到修改员工所在的页面
		to_page(currentPage);
	}
});

该部门主要实现员工的单个删除与批量删除操作,处理器的目标方法如下:

/**
 * 批量删除 + 单个删除
 * 	批量删除:/emp/{ids},ids=1-2-3
 * 	单个删除:/emp/{ids},ids=1
 * @param ids
 * @return
 */
@RequestMapping(value="/emp/{ids}", method=RequestMethod.DELETE)
@ResponseBody
public Message handleDeleteEmps(@PathVariable("ids") String ids) {
	if(ids.contains("-")) {
		List<Integer> idsList = new ArrayList<Integer>();
		String[] ids_str = ids.split("-");
		for(String id : ids_str) {
			idsList.add(Integer.parseInt(id));
		}
		employeeService.deleteBatch(idsList);
	} else {
		Integer id = Integer.parseInt(ids);
		employeeService.deleteEmpById(id);
	}
	return Message.success();
}

总结:

  • 前端页面采用Bootstrap快速搭建;
  • 前端页面发送Ajax请求给服务器,采用JS解析服务器返回的JSON字符串,并显示在页面上;
  • Tomcat服务器中的SSM-CRUD项目,采用SpringMVC前端控制器接收页面请求;
  • 若请求可以处理,则交给Controller - Service - Dao(XxxMapper) - SQL映射文件 - 访问数据库;
  • 若请求无法处理,则将请求交给Tomcat服务器进行处理,如获取静态资源等;
  • 使用Spring容器管理SSM-CRUD项目,并使用Maven实现依赖管理与项目构建。

猜你喜欢

转载自blog.csdn.net/bingbeichen/article/details/81320279
今日推荐