SpringMVC中的幾個(gè)模型對象
SpringMVC的幾個(gè)模型對象
模型對象的作用主要是保存數(shù)據(jù),可以借助它們將數(shù)據(jù)帶到前端。
常用的模型對象有以下幾個(gè):
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ù)一個(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對象,往session對象里放數(shù)據(jù),這里用一個(gè)注解完美解決
基本格式如下:
/**
* @SessionAttributes 除了可以通過屬性名指定需要放到會話中的屬性外(實(shí)際上使用的是 value 屬性值),
* 還可以通過模型屬性的對象類型指定哪些模型屬性需要放到會話中(實(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è)重要對象
HandlerMapping:定義了請求對應(yīng)的handler對象HandlerExecutionChain:包含了handler 對象和攔截器,由HandlerMapping調(diào)用getHandler獲取
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中使用HashMap時(shí)指定初始化容量性能解析
這篇文章主要為大家介紹了Java中使用HashMap時(shí)指定初始化容量性能解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Java并發(fā)編程——volatile關(guān)鍵字
這篇文章主要介紹了Java并發(fā)編程——volatile關(guān)鍵字的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java并發(fā)編程,感興趣的朋友可以了解下2020-10-10
Java實(shí)現(xiàn)AWT四大事件的詳細(xì)過程
AWT的事件處理是一種委派式事件處理方式:普通組件(事件源)將整個(gè)事件處理委托給特定的對象(事件監(jiān)聽器);當(dāng)該事件源發(fā)生指定的事件時(shí),就通知所委托的事件監(jiān)聽器,由事件監(jiān)聽器來處理這個(gè)事件2022-04-04
Springmvc發(fā)送json數(shù)據(jù)轉(zhuǎn)Java對象接收
這篇文章主要介紹了Springmvc發(fā)送json數(shù)據(jù)轉(zhuǎn)Java對象接收,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
java打包文件成zip、壓縮文件及file.mkdir和mkdirs的區(qū)別詳解
這篇文章主要給大家介紹了關(guān)于java打包文件成zip、壓縮文件及file.mkdir和mkdirs區(qū)別詳解的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-12-12
踩坑批量更新sql報(bào)錯,實(shí)際sql能夠正常執(zhí)行的問題
在項(xiàng)目工程遷移過程中,遇到了一個(gè)批量更新接口在新工程中報(bào)錯的問題,通過分析,排除了代碼錯誤的可能,最終發(fā)現(xiàn)是由于數(shù)據(jù)庫連接配置不當(dāng)導(dǎo)致的,在jdbc連接字符串中加入allowMultiQueries=true參數(shù)后,問題得以解決,這個(gè)參數(shù)的作用是允許SQL批量執(zhí)行2022-12-12
SpringBoot使用Nacos進(jìn)行application.yml配置管理詳解
Nacos是阿里巴巴開源的一個(gè)微服務(wù)配置管理和服務(wù)發(fā)現(xiàn)的解決方案,下面我們來看看在SpringBoot中如何使用Nacos進(jìn)行application.yml配置管理吧2025-03-03
SpringBoot利用限速器RateLimiter實(shí)現(xiàn)單機(jī)限流的示例代碼
本文主要介紹了SpringBoot利用限速器RateLimiter實(shí)現(xiàn)單機(jī)限流的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01

