SpringMVC中的幾個(gè)模型對(duì)象
SpringMVC的幾個(gè)模型對(duì)象
模型對(duì)象的作用主要是保存數(shù)據(jù),可以借助它們將數(shù)據(jù)帶到前端。
常用的模型對(duì)象有以下幾個(gè):
1.ModelAndView
顧名思義,模型和視圖,既可以攜帶數(shù)據(jù)信息,也可以攜帶視圖信息,常規(guī)用法如下
/** * 目標(biāo)方法的返回值可以是 ModelAndView 類型。 * 其中可以包含視圖和模型信息 * SpringMVC 會(huì)把 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ù)一個(gè)一個(gè)放在requestScope中,前端取數(shù)據(jù)同樣也是${模型數(shù)據(jù)}
/** * 目標(biāo)方法可以添加 Map 類型(實(shí)際上也可以是 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對(duì)象,往session對(duì)象里放數(shù)據(jù),這里用一個(gè)注解完美解決
基本格式如下:
/** * @SessionAttributes 除了可以通過屬性名指定需要放到會(huì)話中的屬性外(實(shí)際上使用的是 value 屬性值), * 還可以通過模型屬性的對(duì)象類型指定哪些模型屬性需要放到會(huì)話中(實(shí)際上使用的是 types 屬性值) * * 注意: 該注解只能放在類的上面. 而不能修飾方法. 想當(dāng)于在map中和session中 各存放了一個(gè)實(shí)體類,一個(gè)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的幾個(gè)重要對(duì)象
HandlerMapping
:定義了請(qǐng)求對(duì)應(yīng)的handler對(duì)象HandlerExecutionChain
:包含了handler 對(duì)象和攔截器,由HandlerMapping調(diào)用getHandler獲取
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
郵件收發(fā)原理你了解嗎? 郵件發(fā)送基本過程與概念詳解(一)
你真的了解郵件收發(fā)原理嗎?這篇文章主要為大家詳細(xì)介紹了郵件發(fā)送基本過程與概念,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10Mybatis中where標(biāo)簽與if標(biāo)簽結(jié)合使用詳細(xì)說明
mybatis中if和where用于動(dòng)態(tài)sql的條件拼接,在查詢語(yǔ)句中如果缺失某個(gè)條件,通過if和where標(biāo)簽可以動(dòng)態(tài)的改變查詢條件,下面這篇文章主要給大家介紹了關(guān)于Mybatis中where標(biāo)簽與if標(biāo)簽結(jié)合使用的詳細(xì)說明,需要的朋友可以參考下2023-03-03如何將Java對(duì)象轉(zhuǎn)換為JSON實(shí)例詳解
有時(shí)候需要將對(duì)象轉(zhuǎn)換為JSON格式,所以這篇文章主要給大家介紹了關(guān)于如何將Java對(duì)象轉(zhuǎn)換為JSON的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08Intellij IDEA Debug調(diào)試技巧(小結(jié))
這篇文章主要介紹了Intellij IDEA Debug調(diào)試技巧(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Java?數(shù)據(jù)結(jié)構(gòu)與算法系列精講之單向鏈表
單向鏈表特點(diǎn)是鏈表的鏈接方向是單向的,訪問要通過順序讀取從頭部開始。鏈表是使用指針構(gòu)造的列表,是由一個(gè)個(gè)結(jié)點(diǎn)組裝起來的,又稱為結(jié)點(diǎn)列表。其中每個(gè)結(jié)點(diǎn)都有指針成員變量指向列表中的下一個(gè)結(jié)點(diǎn),head指針指向第一個(gè)結(jié)點(diǎn)稱為表頭,而終止于最后一個(gè)指向nuLL的指針2022-02-02Spring Cloud Feign簡(jiǎn)單使用詳解
本篇文章主要介紹了Spring Cloud Feign簡(jiǎn)單使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02