1.返回值分类
1.1字符串
1.2void
1.3ModelAndView
ModelAndView对象是spring提供的一个对象,可以用来调整具体的JSP视图
2.关键字表示转发和重定向的写法(很少用)
Forward转发
Redirect重定向
3.ResponseBody响应json数据
1.DispatcherServlet会拦截到所用的资源,导致一个问题就是静态资源(img,css,js)也会被拦截到,从而不能被使用。解决问题就是需要配置静态资源不进行拦截,在springmvc.xml配置文件条件配置
步骤:
1mvc:resources标间配置不过滤
1.location元素表示webapp目录下的包下的所有文件
2.mapping元素表示以/static开头的所有请求路径,如/static/a 或者/static/a/b
<!-- 设置静态资源不过滤 -->
<mvc:resources location="/css/" mapping="/css/**"/> <!-- 样式 -->
<mvc:resources location="/images/" mapping="/images/**"/> <!-- 图片 -->
<mvc:resources location="/js/" mapping="/js/**"/> <!-- javascript -->
-
使用@RequestBody获取请求体数据
// 页面加载 $(function(){ // 绑定点击事件 $("#btn").click(function(){ $.ajax({ url:"user/testJson", contentType:"application/json;charset=UTF-8", data:'{"addressName":"aa","addressNum":100}', dataType:"json", type:"post", success:function(data){ alert(data); alert(data.addressName); } }); }); }); * 获取请求体的数据 * @param body */ @RequestMapping("/testJson") public void testJson(@RequestBody String body) { System.out.println(body); }
-
使用@RequestBody注解把json的字符串转换成JavaBean的对象
-
使用@ResponseBody注解把JavaBean对象转换成json字符串,直接响应
//页面加载,绑定单击事件 $(function (){ $("#btn").click(function () { // alert("hello btn"); //编写ajax请求 $.ajax({ //编写json格式,设置属性和值 url:"user/testAjax", contentType:"application/json;charset=UTF=8", data:'{"username":"hehe","password":"123456","age":"20"}', dataType:"json", type:"post", success:function (data) { //data服务器端响应的json的数据,进行解析 alert(data); alert(data.username); alert(data.password); alert(data.age); } }); }); });
/** * 模拟异步请求响应ajax * @return */ @RequestMapping("testAjax") public @ResponseBody User testAjax(@RequestBody User user){ System.out.println("testAjax执行了"); //客户端发送ajax的请求,传的是json字符串,后端把json字符串封装到user对象中 System.out.println(user); //做响应,模拟查询数据库 user.setUsername("aaa"); user.setAge(12); //做响应,加@ResponseBody,框架帮我们转成json return user;}
5. . json字符串和JavaBean对象互相转换的过程中,需要使用jackson的jar包
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.0</version>
</dependency>