SpringMVC--06 响应和数据模型
Posted Moon&&Dragon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC--06 响应和数据模型相关的知识,希望对你有一定的参考价值。
SpringMVC–06 响应和数据模型
7.1 @ResponseBody
- 直接响应数据,不涉及到视图
- 可以返回标准的字符串和结构化数据(XML/JSON)
- 会被
StringHttpMessageConverter
影响
7.2 数据模型
SpringMVC提供的在特定作用域内封装数据的组件
7.2.1 Model
我们可以通过Model对象来绑定参数,返回的字符串就是viewName,因为我们没有加
@ResponseBody
Model是一个接口,它的实现类是
ExtendedModelMap
,该实现继承了ModelMap
@GetMapping("/model")
// Model可以在参数列表中声明
public String modelTest(Model model)
// 默认的是请求作用域
model.addAttribute("name","晓龙");
return "login";
7.2.2 ModelMap
ModelMap是继承于LinkedHashMap,它有自身的方法和map的方法
@GetMapping("/modelMap")
public String modelMapTest(ModelMap mMap)
mMap.addAttribute("name","月月");
return "login";
7.2.3 ModelAndView
使用ModelAndView可以在设置参数的同时,也去设置视图的名字,这时候我们需要返回这个ModelAndView交给视图解析器去处理。
它的底层本质其实还是通过ModelMap来存储数据
源码:
public ModelMap getModelMap() // 在存储数据时还是通过ModelMap if (this.model == null) this.model = new ModelMap(); return this.model;
方式一:参数列表声明
@GetMapping("/modelAndView")
// 我们可以通过SpringMVC交给我们一个ModelAndView
public ModelAndView modelAndViewTest(ModelAndView modelAndView)
// 绑定参数
modelAndView.addObject("name","MoonAnd龙");
// 设置视图name
modelAndView.setViewName("login");
// 返回ModelAneView
return modelAndView;
方式二:实例对象
@GetMapping("/modelAndView2")
public ModelAndView modelAndViewTest2()
// 实例ModelAndView对象
ModelAndView modelAndView = new ModelAndView();
// 绑定参数
modelAndView.addObject("name","MoonAnd龙2");
// 设置视图name
modelAndView.setViewName("login");
// 返回ModelAndView
return modelAndView;
7.2.4 参数作用域
SpringMVC的模型组件在默认情况下都是在请求作用域级别的,我们可以通过对应的注解将里面声明的数据提级别。
-
@SessionAttributes
作用在类上的注解,通过names属性来绑定我们需要提升为会话级别的数据@Controller // 将sessionName属性提升到session级别 @SessionAttributes("sessionName") public class ModelController @GetMapping("/modelAndView2") public ModelAndView modelAndViewTest2() ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("name","MoonAnd龙2"); // 将sessionName提升到了session级别 modelAndView.addObject("sessionName","MoonAnd龙2Session"); modelAndView.setViewName("login"); return modelAndView;
以上是关于SpringMVC--06 响应和数据模型的主要内容,如果未能解决你的问题,请参考以下文章
如何通过简单的模拟模型生成人工数据集,用于具有二元响应和 4-5 特征的分类分析? [关闭]