springMVC總結(二)
阿新 • • 發佈:2018-12-25
- 當control返回以 redirect: 為字首的字串時,會進行重定向處理,原理還是同之前的ModelAndView;以forward: 為字首的則表示轉發。
- 時間型別格式化註解:@DateTimeFormat(pattern=“yyyy-MM-dd”);浮點型資料格式化註解:@NumberFormat(pattern="#,###.#")
- JSR 303 驗證
- 使用JSR 303驗證標準
- 加入hibernate validator 驗證框架的jar包
- 在springMVC配置檔案中加入<mvc: annotation-driven />
- 在bean的屬性上新增對應的註解
- 在目標方法bean型別的前面新增@Valid 註解
-
通過BindErrorType 或 Errors 型別來獲取JSR 303 驗證錯誤資訊,需要注意的是,方法中需校驗的bean物件和其繫結結果物件或錯誤物件是成對出現的,它們之間不允許宣告其他的入參
-
@RsponseBody 註解
將資料直接轉換為相應的格式,如json,xml,詳情參考部落格
-
國際化
- 在頁面上根據瀏覽器的語言設定情況對文字(不是內容),時間,數值等進行本地化處理
- 可以在bean中獲取國際化資原始檔Locale對應的訊息
- 可以通過超連結切換Locale,而不再依賴瀏覽器語言設定情況
- 檔案上傳
springMVC通過MultipartResolver 介面實現檔案上傳功能,提供預設的實現類CommonsMultipartResolver,通過MultipartFile 物件來獲取檔案的資訊
- 攔截器
實現步驟:
-
實現HandlerInterceptor 介面
-
將攔截器註冊進容器
-
在 <mvc: interceptors>中直接配置攔截器
<bean clsss="攔截器全限定類名">
-
在 <mvc: interceptors>中配置<mvc: interceptor>子標籤:
<mvc: interceptor> <mvc: mapping path="指定作用的目標路徑"> <bean clsss="攔截器全限定類名"> <mvc: interceptor>
<mvc: interceptor> 中也有配置排除目標路徑的屬性
-
HandlerInterceptor 介面 的方法
- preHandle:
- 在目標方法(即@RequestMaping 註解的方法)執行之前被呼叫
- 若返回值為false 則後續的攔截器和目標方法不會被執行
- postHandle:
- 在目標方法呼叫之後,頁面渲染之前被呼叫
- 可以對請求域屬性或檢視做修改
- afterCompletion:
- 頁面渲染之後被呼叫
- 可以釋放資源
多個攔截器的執行順序:
- 預設情況下,preHandle 方法按攔截器宣告的正序執行,postHandle 與 afterCompletion 方法按攔截器宣告的反序執行
- 圖示:
- 異常處理