SpringMVC 前后台数据传输

时间:2022-11-15 00:23:33

在学习使用SpringMVC过程中,对数据在框架中的流转掌握不佳,特写个笔记,对常用简单方法进行总结(其实方式有很多,比如传递json字符串、ajax传值等)主要意图在于快速上手使用。

前端显示后台数据:
后台数据传递至前端页面的主要方法,借助Controller返回值。

  • 返回ModelAndView:将model和view进行分别设置,ModelAndView用法很多,包含了很多方法,满足灵活传递数据的需要,常用方法如图,
    SpringMVC 前后台数据传输

  • 返回String:

    1. prefix + String + suffix = View
    2. 重定向redirect: return “redirect: url”;
    3. 转发forword:return “forword: url”;
  • 返回void:
    在Controller参数中定义request和response可以用来作为响应结果,而且响应形式多样


前端数据传递至后台

数据绑定:从请求参数、路径变量、请求头属性或者cookie中抽取出来的值,可能需要被转换成其所绑定的目标方法参数或字段的类型。目标类型为基本数据类型spring都支持自动转换

  • 简单参数传递:
    使用注解@RequestParam(value="var", required=true)解除同名约束

  • 简单pojo传递:前端页面的变量必须同Controller参数类中的属性名相同

  • 包装pojo传递:前端页面的变量必须同Controller参数类中的属性名相同,只不过此时的属性是pojo


json数据交互

json串key/value结构清晰简洁,方便解析,常作为前后台数据交互利器。

  • 准备工作: json数据传至Controller的时候需要由json转换成pojo对象,这一工作直接使用现成的工具包,故Maven引入jar包

    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.7.2</version>
    </dependency>
    <dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.13</version>
    </dependency>
  • 注册配置json转换器:
    使用< mvc:annotation-driven />则无需注册bean,否则在spring配置文件中需要完成bean注册
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
</list>
</property>
</bean>
  • ajax 测试数据

SpringMVC 前后台数据传输