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-10
Mybatis中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-03
Intellij IDEA Debug調(diào)試技巧(小結(jié))
這篇文章主要介紹了Intellij IDEA Debug調(diào)試技巧(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Java?數(shù)據(jù)結(jié)構(gòu)與算法系列精講之單向鏈表
單向鏈表特點是鏈表的鏈接方向是單向的,訪問要通過順序讀取從頭部開始。鏈表是使用指針構(gòu)造的列表,是由一個個結(jié)點組裝起來的,又稱為結(jié)點列表。其中每個結(jié)點都有指針成員變量指向列表中的下一個結(jié)點,head指針指向第一個結(jié)點稱為表頭,而終止于最后一個指向nuLL的指針2022-02-02

