日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

SpringMVC:学习笔记(4)——处理模型数据

發布時間:2025/7/14 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringMVC:学习笔记(4)——处理模型数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SpringMVC—處理模型數據

說明

  SpringMVC?提供了以下幾種途徑輸出模型數據:
  –?ModelAndView:?處理方法返回值類型為?ModelAndView時,?方法體即可通過該對象添加模型數據
  –?Map及Model:入參為org.springframework.ui.Model、org.springframework.ui.ModelMap?或?Java.uti.Map?時,處理方法返回時,Map中的數據會自動添加到模型中。
  –?@SessionAttributes:?將模型中的某個屬性暫存到HttpSession?中,以便多個請求之間可以共享這個屬性
  –?@ModelAttribute:?方法入參標注該注解后,?入參的對象就會放到數據模型中。

ModelAndView

說明

  一旦Controller處理完客戶請求,則返回ModelAndView對象給DispatcherServlet前端控制器。ModelAndView中包含了模型(Model)和視圖(View)。從宏觀角度考慮,DispatcherServlet是整個Web應用的控制器;從微觀角度考慮,Controller是單個Http請求處理過程中的控制器,而ModelAndView是Http請求過程中返回的模型和視圖。
  即,控制器處理方法的返回值如果為ModelAndView,則其中既包含視圖信息,也包含模型數據信息。

示例

  1.創建ModelAndView,并傳入模型數據  

  

  2.編寫JSP頁面,進行測試

  

說明:SpringMVC會把ModelAndView中的Model中的數據方法Request域對象中?!?/span>

Map及Model

說明:?

  Spring MVC 在內部使用了一個org.springframework.ui.Model 接口存儲模型數據。

  Spring MVC 在調用方法前會創建一個隱含的模型對象作為模型數據的存儲容器。

  如果方法的入參為 Map 或 Model 類型,Spring MVC 會將隱含模型的引用傳遞給這些入參。在方法體內,開發者可以通過這個入參對象訪問到模型中的所有數據,也可以向模型中添加新的屬性數據。

示例:

  

使用MODEL:

  這里傳入的Map實際為BindingAwareModelMap,所以我們定義參數用Map即可?! ?/strong>

?  

說明:

  并且在這里我們也是可以使用Model類型的。
  

@SessionAttribute

  若希望在多個請求之間共用某個模型屬性數據,則可以在控制器類上標注一個 @SessionAttributes,Spring MVC將在模型中對應的屬性暫存到 HttpSession 中。

 說明:

    注意這個注解只能放到類的上面

  1.首先使用Map將模型數據存到請求域中,然后在類定義處使用@SessionAttributes,拷貝到Session中。

  

  2.編寫JSP頁面及測試

  

  

補充

  @SessionAttributes 除了可以通過屬性名指定需要放到會話中的屬性外,還可以通過模型屬性的對象類型指定哪些模型屬性需要放到會話中
  – @SessionAttributes(types=User.class) 會將隱含模型中所有類型為 User.class 的屬性添加到會話中。
  – @SessionAttributes(value={“user1”, “user2”})
  – @SessionAttributes(types={User.class, Dept.class})
  – @SessionAttributes(value={“user1”, “user2”},types={Dept.class})

@ModelAttribute

說明:

  前面談到SpringMVC在每次調用請求處理方法時,都會創建Model類型的一個實例。如果準備使用此實例,則可以在方法中添加一個Model類型的參數。還可以使用在方法中添加@ModelAttribute注釋類型來訪問Model實例。

  可以用@ModelAttribute來注釋方法參數:帶有@ModelAttribute注解的方法會將其輸入或創建的參數對象添加到Model對象中(若方法中沒有顯式添加)。

  可以用@ModelAttribute標注一個非請求的處理方法:被@ModelAttribute注釋的方法會在此controller每個方法執行前被執行?! ?/span>

基本用法:

  1.在方法上使用@ModelAttribute

  @Controllerpublic class UserDao{.....@ModelAttributepublic User addUser(User user){return new User(201702,"MrSaber");}.....}

說明:

 @ModelAttribute 注解的方法可以返回一個 對象或者一個void類型。如果返回一個對象則默認添加到Model中。若方法返回一個void類型,則還必須自行將實例添加到Model中。

?

  @Controllerpublic class UserDao{.....@ModelAttributepublic void addUser(User user,Model model){...model.addAttribute(user);}.....}

  2.在方法參數上使用@ModelAttribute.

@RequestMapping("/save") public String save(@ModelAttribute("newUser") User user) { user.setUsername("U love me"); userService.save(user); return "result"; }

說明:

   輸入或創建的User實例將用newUser鍵值添加到Model對象中。如果未定義將默認用小寫名稱作為鍵。

轉載于:https://www.cnblogs.com/MrSaver/p/6395684.html

總結

以上是生活随笔為你收集整理的SpringMVC:学习笔记(4)——处理模型数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。