1. 程式人生 > >SSM整合-03 資訊新增、修改與刪除

SSM整合-03 資訊新增、修改與刪除

專案完整實現程式碼下載地址: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實現依賴管理與專案構建。