在学习使用SpringMVC过程中,对数据在框架中的流转掌握不佳,特写个笔记,对常用简单方法进行总结(其实方式有很多,比如传递json字符串、ajax传值等)主要意图在于快速上手使用。
前端显示后台数据:
后台数据传递至前端页面的主要方法,借助Controller返回值。
返回ModelAndView:将model和view进行分别设置,ModelAndView用法很多,包含了很多方法,满足灵活传递数据的需要,常用方法如图,
-
返回String:
- prefix + String + suffix = View
- 重定向redirect: return “redirect: url”;
- 转发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 测试数据