SpringMVC中的幾個模型對象
SpringMVC的幾個模型對象
模型對象的作用主要是保存數(shù)據(jù),可以借助它們將數(shù)據(jù)帶到前端。
常用的模型對象有以下幾個:
1.ModelAndView
顧名思義,模型和視圖,既可以攜帶數(shù)據(jù)信息,也可以攜帶視圖信息,常規(guī)用法如下
/**
* 目標方法的返回值可以是 ModelAndView 類型。
* 其中可以包含視圖和模型信息
* SpringMVC 會把 ModelAndView 的 model 中數(shù)據(jù)放入到 request 域對象中.
* @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ù)}
/**
* 目標方法可以添加 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
相當于創(chuàng)建session對象,往session對象里放數(shù)據(jù),這里用一個注解完美解決
基本格式如下:
/**
* @SessionAttributes 除了可以通過屬性名指定需要放到會話中的屬性外(實際上使用的是 value 屬性值),
* 還可以通過模型屬性的對象類型指定哪些模型屬性需要放到會話中(實際上使用的是 types 屬性值)
*
* 注意: 該注解只能放在類的上面. 而不能修飾方法.
想當于在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:定義了請求對應的handler對象HandlerExecutionChain:包含了handler 對象和攔截器,由HandlerMapping調用getHandler獲取
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Springmvc發(fā)送json數(shù)據(jù)轉Java對象接收
這篇文章主要介紹了Springmvc發(fā)送json數(shù)據(jù)轉Java對象接收,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-10-10
java打包文件成zip、壓縮文件及file.mkdir和mkdirs的區(qū)別詳解
這篇文章主要給大家介紹了關于java打包文件成zip、壓縮文件及file.mkdir和mkdirs區(qū)別詳解的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-12-12
踩坑批量更新sql報錯,實際sql能夠正常執(zhí)行的問題
在項目工程遷移過程中,遇到了一個批量更新接口在新工程中報錯的問題,通過分析,排除了代碼錯誤的可能,最終發(fā)現(xiàn)是由于數(shù)據(jù)庫連接配置不當導致的,在jdbc連接字符串中加入allowMultiQueries=true參數(shù)后,問題得以解決,這個參數(shù)的作用是允許SQL批量執(zhí)行2022-12-12
SpringBoot使用Nacos進行application.yml配置管理詳解
Nacos是阿里巴巴開源的一個微服務配置管理和服務發(fā)現(xiàn)的解決方案,下面我們來看看在SpringBoot中如何使用Nacos進行application.yml配置管理吧2025-03-03
SpringBoot利用限速器RateLimiter實現(xiàn)單機限流的示例代碼
本文主要介紹了SpringBoot利用限速器RateLimiter實現(xiàn)單機限流的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01

