一、返回值分类
(一)返回值是字符串
Controller方法返回字符串可以指定逻辑视图的名称,根据视图解析器为物理视图的地址。
1 | "/hello") (value= |
(二)返回值是ModelAndView对象
ModelAndView对象是Spring提供的一个对象,可以用来调整具体的JSP视图。
具体的代码如下:
1 | / |
1 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> |
(三)返回值是void
如果控制器的方法返回值编写成void,执行程序报404的异常。
因为如果没有返回值也没有指定跳转或重定向页面,则会默认跳转到控制器方法名称.jsp。
但是这种情况下,我们可以使用请求转发或者重定向跳转到指定的页面。
1 | "/initAdd") (value= |
二、SpringMVC提供的转发和重定向
(一)forward请求转发
controller方法返回String类型,想进行请求转发也可以编写成:
1 | /** |
(二)redirect重定向
controller方法返回String类型,想进行重定向也可以编写成:
1 | /** |
三、ResponseBody响应json数据
(一)设置不拦截静态资源
DispatcherServlet会拦截到所有的资源,导致一个问题就是静态资源(img、css、js)也会被拦截到,从而
不能被使用。解决问题就是需要配置静态资源不进行拦截,在springmvc.xml配置文件添加如下配置:
1 | <!-- 设置静态资源不过滤 --> |
location属性表示webapp目录下的包下的所有文件
mapping属性表示以/static开头的所有请求路径,如/static/a 或者/static/a/b
(二)使用@RequestBody获取请求体数据
在前端页面中有以下代码,触发点击事件后,发送异步请求:
1 | $(function(){ |
控制器代码:
1 | * 获取请求体的数据 |
(三)使用@RequestBody注解把json的字符串转换成JavaBean的对象
前端代码:
1 | $(function(){ |
控制器代码:
1 | /** |
(四)使用@ResponseBody注解把JavaBean对象转换成json字符串,直接响应
前端代码:
1 | $(function(){ |
控制器代码:
要求方法需要返回JavaBean的对象
1 | "/testJson") ( |
(五)json字符串和JavaBean对象互相转换的过程中,需要使用jackson的jar包
1 | <dependency> |
Java新手,若有错误,欢迎指正!