99热这里有精品-夜夜嗨av色一区二区不卡-亚洲国产精彩中文乱码AV-日本japanese乳偷乱熟

SpringMVC框架 第7章 綜合案例RESTRUL_CRUD

7?綜合案例RESTRUL_CRUD

7.1 RESTRUL_CRUD_需求

7.1.1 顯示所有員工信息

? 1)? URI:emps

? 2)? 請求方式:GET

? 3)? 顯示效果

7.1.2 添加操作-去往添加頁面

? 1)? 顯示添加頁面:

? 2)? URI:emp

? 3)? 請求方式:GET

? 4)? 顯示效果

7.1.3 添加操作-添加員工

? 1)? 添加員工信息:

? 2)? URI:emp

? 3)? 請求方式:POST

? 4)? 顯示效果:完成添加,重定向到 list 頁面。

7.1.4 刪除操作

? 1)? URL:emp/{id}

? 2)? 請求方式:DELETE

? 3)? 刪除后效果:對應記錄從數據表中刪除

7.1.5 修改操作-去往修改頁面

? 1)? URI:emp/{id}

? 2)? 請求方式:GET

? 3)? 顯示效果:回顯表單

7.1.6 修改操作-修改員工

? 1)? URI:emp

? 2)? 請求方式:PUT

? 3)? 顯示效果:完成修改,重定向到 list 頁面。

7.1.7 相關的類

省略了Service層,為了教學方便

? 1)? 實體類:Employee、Department

? 2)? Handler:EmployeeHandler

? 3)? Dao:EmployeeDao、DepartmentDao

7.1.8 相關的頁面

? 1) list. jsp

? 2) input. jsp

? 3)edit.? jsp

7.2 搭建開發環境

? 1)? 拷貝jar包

? 5)? 創建相關頁面

/WEB-INF/views/list.jsp

index.jsp

? 6)? 增加實體類? 7)? 增加DAO類

7.3 RESTRUL_CRUD_顯示所有員工信息

7.4 RESTRUL_CRUD_添加操作

7.5 使用Spring的表單標簽

? 1)? 通過 SpringMVC 的表單標簽可以實現將模型數據中的屬性和 HTML 表單元素相綁定,以實現表單數據更便捷編輯和表單值的回顯?

? 2)? form 標簽

  • 一般情況下,通過 GET 請求獲取表單頁面,而通過 POST 請求提交表單頁面因此獲取表單頁面和提交表單頁面的 URL 是相同的
  • 只要滿足該最佳條件的契約<form:form> 標簽就無需通過 action 屬性指定表單提交的 URL
  • 可以通過 modelAttribute屬性指定綁定的模型屬性,若沒有指定該屬性,則默認從 request 域對象中讀取 command?的表單 bean,如果該屬性值也不存在,則會發生錯誤。

? 3)? SpringMVC 提供了多個表單組件標簽,如 <form:input/>、<form:select/> 等,用以綁定表單字段的屬性值,它們的共有屬性如下:

  • path表單字段,對應 html 元素的 name 屬性,支持級聯屬性
  • htmlEscape:是否對表單值的 HTML 特殊字符進行轉換,默認值為 true
  • cssClass:表單組件對應的 CSS 樣式類名
  • cssErrorClass:表單組件的數據存在錯誤時,采取的 CSS 樣式

? 4)? form:input、form:password、form:hidden、form:textarea:對應 HTML 表單的 text、password、hidden、textarea 標簽

? 5)? form:radiobutton:單選框組件標簽,當表單 bean 對應的屬性值和 value 值相等時,單選框被選中??

? 6)? form:radiobuttons:單選框組標簽,用于構造多個單選框

  • items:可以是一個 List、String[] 或 Map
  • itemValue:指定 radio 的 value 值。可以是集合中 bean 的一個屬性值
  • itemLabel:指定 radio 的 label 值
  • delimiter:多個單選框可以通過 delimiter 指定分隔符

? 7)? form:checkbox:復選框組件。用于構造單個復選框

? 8)? form:checkboxs:用于構造多個復選框。使用方式同 form:radiobuttons 標簽

? 9)? form:select:用于構造下拉框組件。使用方式同 form:radiobuttons 標簽

? 10)? form:option:下拉框選項組件標簽。使用方式同 form:radiobuttons 標簽

? 11)? form:errors:顯示表單組件或數據校驗所對應的錯誤

  • <form:errors path= “*” /> :顯示表單所有的錯誤
  • <form:errors path= “user*” /> :顯示所有以 user 為前綴的屬性對應的錯誤
  • <form:errors path= “username”/> :顯示特定表單對象屬性的錯誤

    ?

7.6 添加員工實驗代碼?

? 1)? 表單

? 2)? 控制器方法

7.7 RESTRUL_CRUD_刪除操作&處理靜態資源

7.7.1 刪除實驗代碼

7.7.2 HiddenHttpMethodFilter過濾器

發起請求,無法執行,因為delete請求必須通過post請求轉換為delete請求,借助:HiddenHttpMethodFilter過濾器

7.7.3 需要使用jQuery來轉換請求方式

? 1)? 加入jQuery庫文件

/scripts/jquery-1.9.1.min.js

? 2)? jQuery庫文件不起作用? 3)? 解決辦法,SpringMVC 處理靜態資源

  • 為什么會有這樣的問題:

優雅的 REST 風格的資源URL 不希望帶 .html 或 .do 等后綴,若將 DispatcherServlet 請求映射配置為 /, 則 Spring MVC 將捕獲 WEB 容器的所有請求, 包括靜態資源的請求, SpringMVC 會將他們當成一個普通請求處理, 因找不到對應處理器將導致錯誤。

②解決: 在 SpringMVC 的配置文件中配置 <mvc:default-servlet-handler/>

? 4)? 配置后,原來的請求又不好使了

需要配置<mvc:annotation-driven />

7.7.4 關于<mvc:default-servlet-handler/>作用

7.7.5 通過jQuery轉換為DELETE請求

7.7.6 刪除操作流程圖解

7.8 RESTRUL_CRUD_修改操作

7.8.1 根據id查詢員工對象,表單回顯

7.8.2 提交表單,修改數據

安西县| 方正县| 南乐县| 惠东县| 吉林省| 武邑县| 新竹县| 板桥市| 长岭县| 麦盖提县| 新干县| 南昌市| 平利县| 双鸭山市| 汉源县| 甘洛县| 达孜县| 金寨县| 仪陇县| 凤庆县| 勐海县| 子洲县| 庆城县| 镇安县| 西充县| 古田县| 宝山区| 互助| 茌平县| 遂昌县| 长治市| 福海县| 丹寨县| 许昌市| 玛曲县| 宁安市| 伽师县| 拜泉县| 鄂州市| 晋宁县| 凤城市|