Springboot+Thymeleaf簡單整合後續問題及完善
阿新 • • 發佈:2020-12-07
Springboot+Thymyleaf簡單整合——
問題解決及後續功能更新
前文:https://www.cnblogs.com/djhzzl/p/14092783.html
在前後端資料互動時,使用如下方法,當然拼接URL也是可以的。
<a th:href="@{deleteEmployee(employee_id=${employee.employee_id})}"><input type="submit" value="刪除"></a>
Input中的的name屬性與javabean中名字要相同
前端介面中,提交表單form中的input的屬性th:value="${ }"中的屬性名要與Controller的方法中的ModelMap固定的物件的名字相同modelMap.put(" ",);
如Update.html:
th:value="${employee.employee_id}"
//Controller:
EmployeeController.java
modelMap.put("employee",employee);
編輯功能(update)
編輯分析
通用分析:
1. 跳轉到編輯頁面
2. 頁面上顯示所點選條目資訊
3. 修改完成後點選確定,修改資訊
4. 點選修改後,跳轉到原頁面
技術分析:
不能直接在html頁面之間直接傳資料,因為容易缺失資料。
需要通過控制器:
1. 獲取傳過來的id
2. 根據id查詢員工資訊
3. 查詢所有部門資訊
4. 將員工資訊和部門資訊繫結modelMap,傳送到編輯頁面
控制器:
1. 接收表單傳遞的資料;
2. 修改;
(重複工作3-5)
3. 查詢所有部門
4. 查詢該部門下的所有員工
5. 繫結modelMap,傳送到頁面
( 可以使用input type="hidden"隱藏域 儲存id,使id不顯示 )
1,使用關聯查詢,不破壞表結構
此時,在實現編輯功能,前後端資料傳遞時,為了使下拉框表示的 部門名 對應 該職員所在的 部門 (顯示department_name),使用關聯查詢,連線employee和department表。
Employee1Mapper中:
<resultMap id="employeeMap1" type=EmployeeMapper.xml"com.djh.demo.bean.Employee"> <id property="employee_id" column="employee_id"/> <result property="employee_name" column="employee_name"/> <result property="employee_age" column="employee_age"/> <association property="department" javaType="com.djh.demo.bean.Department"> <id property="department_id" column="department_id"/> <result property="department_name" column="department_name"/> </association> </resultMap> <select id="selectoneid" resultMap="employeeMap1"> select e.employee_id, e.employee_name, e.employee_age, d.department_id, d.department_name from employee as e inner join department as d on e.department_id = d.department_id where e.employee_id = #{employee_id} </select>
需注意,此時實體類中,呼叫的department_id為department的物件,所以在前端使用department_id時,需要從department物件內呼叫,
注意物件的呼叫
如:
th:selected="${department.department_id}==${employee.department.department_id}?true:false"