SpringMVC中的几个模型对象

目录
  • SpringMVC的几个模型对象
    • 1.ModelAndView
    • 2.Map和modelAndView原理一样
    • 3.@SessionAttributes
  • SpringMVC的几个重要对象

SpringMVC的几个模型对象

模型对象的作用主要是保存数据,可以借助它们将数据带到前端。

常用的模型对象有以下几个:

1.ModelAndView

顾名思义,模型和视图,既可以携带数据信息,也可以携带视图信息,常规用法如下

/**
  * 目标方法的返回值可以是 ModelAndView 类型。
  * 其中可以包含视图和模型信息
  * SpringMVC 会把 ModelAndView 的 model 中数据放入到 request 域对象中.
  * @return
  */

@RequestMapping("/testModelAndView")
 public ModelAndView testModelAndView(){
  String viewName = SUCCESS;
  ModelAndView modelAndView = new ModelAndView(viewName);

  //添加模型数据到 ModelAndView 中.
  modelAndView.addObject("time", new Date());
  return modelAndView;
 }

2.Map和modelAndView原理一样

同样是将数据一个一个放在requestScope中,前端取数据同样也是${模型数据}

/**
  * 目标方法可以添加 Map 类型(实际上也可以是 Model 类型或 ModelMap 类型)的参数.
  * @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

相当于创建session对象,往session对象里放数据,这里用一个注解完美解决

基本格式如下:

/**
  * @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获取

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • springmvc参数为对象,数组的操作

    目录 参数为对象 1.提交表单 2.表单序列化,使用ajax提交 3.也可以这样写 4.如果结构复杂,使用@RequestBody 5.传递数组 springmvc接受复杂对象(对象数组) 前端: 后端: @RequestBody和@RequestParam的区别 参数为对象 1.提交表单 2.表单序列化,使用ajax提交 var data = $("#addForm").serialize(); $.ajax({ url : "addReportDo", //请求

  • Springmvc发送json数据转Java对象接收

    1.导包 基于maven <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackso

  • SpringMVC中的Model对象用法说明

    模型对象的作用主要是保存数据,可以借助它们将数据带到前端. 常用的模型对象有以下几个: ModelAndView(顾名思义,模型和视图,既可以携带数据信息,也可以携带视图信息,常规用法如下) /** * ModelAndView 绑定数据到视图 (ModelMap用于传递数据 View对象用于跳转) * @return * @throws Exception */ @RequestMapping(value="/case2") public ModelAndView case2() t

  • SpringMVC中的handlerMappings对象用法

    目录 一.handlerMappings集合内部的元素是什么,有什么作用? 对于RequestMappingHandlerMapping 对于SimpleUrlHandlerMapping 二.handlerMappings集合是怎么初始化的? 总结 三.handlerMappings有什么扩展? localhost:9090/jsp/1.jsp访问时会报如下404错误 从SpringMVC源码解析所用的例子,一个http://localhost:9090/web/hi?name=yang请求调

  • SpringMVC 域对象共享数据的实现示例

    目录 使用ModelAndView向request域对象共享数据 使用Model向request域对象共享数据 使用map向request域对象共享数据 使用ModelMap向request域对象共享数据 Model.ModelMap.Map的关系 向session域共享数据 向application域共享数据 使用ModelAndView向request域对象共享数据 index.html <a th:href="@{/testModelAndView}" rel="

  • springMvc 前端用json的方式向后台传递对象数组方法

    如下所示: JSP var vipFee= new Array; //遍历选中的对象 $("#feeList :checkbox:checked").each(function(i){ vipFee.push({"enterpriseSeq":$(this).attr("enterpriseSeq"),"merchNo":$(this).val(),"serviceFee":$(this).attr(&qu

  • SpringMVC接收复杂集合对象(参数)代码示例

    SpringMVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype(MIME编码)是application/json,因此发送POST请求时需要设置请求报文头信息,否则SpringMVC在解析集合请求参数时不会自动的转换成JSON数据再解析成相应的集合.以下列举接收List<String>.List<User>.List<Map<String,Object>>.

  • SpringMVC中的几个模型对象

    目录 SpringMVC的几个模型对象 1.ModelAndView 2.Map和modelAndView原理一样 3.@SessionAttributes SpringMVC的几个重要对象 SpringMVC的几个模型对象 模型对象的作用主要是保存数据,可以借助它们将数据带到前端. 常用的模型对象有以下几个: 1.ModelAndView 顾名思义,模型和视图,既可以携带数据信息,也可以携带视图信息,常规用法如下 /** * 目标方法的返回值可以是 ModelAndView 类型. * 其中可

  • 详解SpringMVC中使用Interceptor拦截器

    SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理.比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判断当前时间是否是购票时间.  一.定义Interceptor实现类 SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的.在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式,第一种方式是要定义的Interce

  • SpringMVC中Controller类数据响应的方法

    目录 1. 方法返回值类型 2. 页面跳转 2.1 直接返回字符串 2.2 返回 ModelAndView 对象 2.3 视图前缀和后缀 2.3 重定向和转发 3. 回写数据 3.1 直接返回字符串 3.2 返回对象或集合 上篇博客我们了解了请求参数的获取,那么获取到请求参数之后,需要对参数进行出来,然后进行数据响应.那么这篇博客我们就来了解 Controller 类如何进行数据响应. 1. 方法返回值类型 在 web 阶段我们也了解过数据响应,我们可以简单的将数据响应分为:页面跳转和回写数据

  • SpringMVC中@ModelAttribute注解的使用教程

    前言 @ModelAttribute最主要的作用是将数据添加到模型对象中,用于视图页面展示时使用. @ModelAttribute等价于 model.addAttribute("attributeName", abc); 但是根据@ModelAttribute注释的位置不同,和其他注解组合使用,致使含义有所不同.具体区别如下: 1.@ModelAttribute注释方法 例子(1),(2),(3)类似,被@ModelAttribute注释的方法会在此controller每个方法执行前被

  • SpringMVC中@Valid不起效BindingResult读取不到Error信息

    目录 Bug记录 首先检查jar包的导入 检查Bean实体类的注解 检查Springmvc的配置 检查View层的Spring MVC表单标签 检查JDK版本 总结 Bug记录 在写SpringMVC项目时,由于要对表单数据进行校验,使用Spring MVC框架时,有两种 常用的方式校验输入的数据. 利用Spring框架自带的验证框架 利用JSR 303实现 我使用的是JSR 303实现数据校验的,JSR 303 通过在Bean属性上标注类似于@NotNull.@Max等标准的注解指定校验规则,

  • 一文搞懂SpringMVC中@InitBinder注解的使用

    目录 简介 应用示例 原理解读 环境:Springboot2.4.12 简介 ​@Controller或@ControllerAdvice类可以有@InitBinder方法来初始化WebDataBinder的实例,这些方法可以: 将请求参数(即表单或查询数据)绑定到模型对象. 将基于字符串的请求值(如请求参数.路径变量.头.cookie等)转换为控制器方法参数的目标类型. 渲染HTML表单时,将模型对象的值格式化为字符串值. @InitBinder方法可以注册控制器特定的java.bean.Pr

  • Spring jdbc中数据库操作对象化模型的实例详解

    Spring jdbc中数据库操作对象化模型的实例详解 Spring Jdbc数据库操作对象化 使用面向对象方式表示关系数据库的操作,实现一个线程安全可复用的对象模型,其顶级父类接口RdbmsOperation. SqlOperation继承该接口,实现数据库的select, update, call等操作. 1.查询接口:SqlQuery 1) GenericSqlQuery, UpdatableSqlQuery, MappingSqlQueryWithParameter 2) SqlUpda

  • JavaEE开发之SpringMVC中的自定义消息转换器与文件上传

    本篇博客我们继续的来聊SpringMVC的东西,下方我们将会聊到js.css这些静态文件的加载配置,以及服务器推送的两种实现方式.当然我们在服务器推送时,会用到jQuery的东西,所以我们先聊一下如何加载静态资源文件,然后我们再聊如何实现服务器推送. 下方给出了两种实现服务器推送的方式,一种是SSE(Server Send Event (服务端推送事件))另一种是基于Servlet异步处理的推送,下方会给出详细的实现方式,并且给出了两者的区别. 一.静态资源文件映射 静态资源文件映射在Sprin

随机推荐