1. 程式人生 > >springMVC總結(二)

springMVC總結(二)

  1. 當control返回以 redirect: 為字首的字串時,會進行重定向處理,原理還是同之前的ModelAndView;以forward: 為字首的則表示轉發。
  2. 時間型別格式化註解:@DateTimeFormat(pattern=“yyyy-MM-dd”);浮點型資料格式化註解:@NumberFormat(pattern="#,###.#")
  3. JSR 303 驗證
  • 使用JSR 303驗證標準
  • 加入hibernate validator 驗證框架的jar包
  • 在springMVC配置檔案中加入<mvc: annotation-driven />
  • 在bean的屬性上新增對應的註解
  • 在目標方法bean型別的前面新增@Valid 註解
  1. 通過BindErrorType 或 Errors 型別來獲取JSR 303 驗證錯誤資訊,需要注意的是,方法中需校驗的bean物件和其繫結結果物件或錯誤物件是成對出現的,它們之間不允許宣告其他的入參

  2. @RsponseBody 註解

    將資料直接轉換為相應的格式,如json,xml,詳情參考部落格

  3. 國際化

  • 在頁面上根據瀏覽器的語言設定情況對文字(不是內容),時間,數值等進行本地化處理
  • 可以在bean中獲取國際化資原始檔Locale對應的訊息
  • 可以通過超連結切換Locale,而不再依賴瀏覽器語言設定情況
  1. 檔案上傳

springMVC通過MultipartResolver 介面實現檔案上傳功能,提供預設的實現類CommonsMultipartResolver,通過MultipartFile 物件來獲取檔案的資訊

  1. 攔截器

實現步驟:

  • 實現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 方法按攔截器宣告的反序執行
  • 圖示:

在這裡插入圖片描述

  1. 異常處理