SpringMVC中的幾個模型對象
SpringMVC的幾個模型對象
模型對象的作用主要是保存數(shù)據(jù),可以借助它們將數(shù)據(jù)帶到前端。
常用的模型對象有以下幾個:
1.ModelAndView
顧名思義,模型和視圖,既可以攜帶數(shù)據(jù)信息,也可以攜帶視圖信息,常規(guī)用法如下
/** * 目標(biāo)方法的返回值可以是 ModelAndView 類型。 * 其中可以包含視圖和模型信息 * SpringMVC 會把 ModelAndView 的 model 中數(shù)據(jù)放入到 request 域?qū)ο笾? * @return */ @RequestMapping("/testModelAndView") public ModelAndView testModelAndView(){ String viewName = SUCCESS; ModelAndView modelAndView = new ModelAndView(viewName); //添加模型數(shù)據(jù)到 ModelAndView 中. modelAndView.addObject("time", new Date()); return modelAndView; }
2.Map和modelAndView原理一樣
同樣是將數(shù)據(jù)一個一個放在requestScope中,前端取數(shù)據(jù)同樣也是${模型數(shù)據(jù)}
/** * 目標(biāo)方法可以添加 Map 類型(實際上也可以是 Model 類型或 ModelMap 類型)的參數(shù). * @param map * @return */ @RequestMapping("/testMap") public String testMap(Map<String, Object> map){ System.out.println(map.getClass().getName()); map.put("names", Arrays.asList("Tom", "Jerry", "Mike")); return SUCCESS; }
3.@SessionAttributes
相當(dāng)于創(chuàng)建session對象,往session對象里放數(shù)據(jù),這里用一個注解完美解決
基本格式如下:
/** * @SessionAttributes 除了可以通過屬性名指定需要放到會話中的屬性外(實際上使用的是 value 屬性值), * 還可以通過模型屬性的對象類型指定哪些模型屬性需要放到會話中(實際上使用的是 types 屬性值) * * 注意: 該注解只能放在類的上面. 而不能修飾方法. 想當(dāng)于在map中和session中 各存放了一個實體類,一個String類的字符串 */ @SessionAttributes(value={"user"}, types={String.class}) @RequestMapping("/testSessionAttributes") public String testSessionAttributes(Map<String, Object> map){ User user = new User("Tom", "123456", "tom@atguigu.com", 15); map.put("user", user); map.put("school", "atguigu"); return SUCCESS; }
SpringMVC的幾個重要對象
HandlerMapping
:定義了請求對應(yīng)的handler對象HandlerExecutionChain
:包含了handler 對象和攔截器,由HandlerMapping調(diào)用getHandler獲取
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
郵件收發(fā)原理你了解嗎? 郵件發(fā)送基本過程與概念詳解(一)
你真的了解郵件收發(fā)原理嗎?這篇文章主要為大家詳細(xì)介紹了郵件發(fā)送基本過程與概念,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10Mybatis中where標(biāo)簽與if標(biāo)簽結(jié)合使用詳細(xì)說明
mybatis中if和where用于動態(tài)sql的條件拼接,在查詢語句中如果缺失某個條件,通過if和where標(biāo)簽可以動態(tài)的改變查詢條件,下面這篇文章主要給大家介紹了關(guān)于Mybatis中where標(biāo)簽與if標(biāo)簽結(jié)合使用的詳細(xì)說明,需要的朋友可以參考下2023-03-03Intellij IDEA Debug調(diào)試技巧(小結(jié))
這篇文章主要介紹了Intellij IDEA Debug調(diào)試技巧(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Java?數(shù)據(jù)結(jié)構(gòu)與算法系列精講之單向鏈表
單向鏈表特點是鏈表的鏈接方向是單向的,訪問要通過順序讀取從頭部開始。鏈表是使用指針構(gòu)造的列表,是由一個個結(jié)點組裝起來的,又稱為結(jié)點列表。其中每個結(jié)點都有指針成員變量指向列表中的下一個結(jié)點,head指針指向第一個結(jié)點稱為表頭,而終止于最后一個指向nuLL的指針2022-02-02