使用@Controller注解标识的后端处理器类中的方法,其返回值通常有四种情况

1. ModelAndView

若处理器方法处理完之后,需要跳转到其他页面并且需要传递一些数据,此时返回ModelAndView比较好。

例子:

springmvc return无法返回html页面 springmvc处理返回值_视图解析器

2. String

当后端控制器方法返回类型为String时,代表返回的是视图的完整路径名(前提:不要在项目里配置视图解析器!!!)

例子:

springmvc return无法返回html页面 springmvc处理返回值_java_02


这种方式有个不好的地方就是如果后端有很多方法需要跳转很多jsp页面,那么都写相对路径很繁琐。于是MVC框架为了解决这个问题提供了视图解析器,视图解析器在MVC的配置文件中进行配置,一般格式如下

springmvc return无法返回html页面 springmvc处理返回值_字符串_03


配置完视图解析器后,再返回String类型的路径时,就不需要写比较长的相对路径了,直接写视图名就可以了,像上面fun2.do的请求处理方法,就可以将返回值改为return "paramsResult"即可,框架会自动填充前缀和后缀

3. void(了解)

若处理器方法对请求处理后,无需跳转到其它任何资源,仅仅需要返回数据给请求,此时可以让处理器方法返回 void类型,使用response对象填充数据即可。例如,对于 AJAX 的异步请求的响应就可以使用这种方式

步骤:

因为现在基本上都是使用json数据传输前后端数据,所以先导入处理json的依赖,这里我使用Jackson依赖

springmvc return无法返回html页面 springmvc处理返回值_spring_04


方法具体是这样的

springmvc return无法返回html页面 springmvc处理返回值_数据_05


这种方式仅做了解即可,因为有下面的更好的方式替代了

4. Object

处理器方法也可以返回 Object 对象。这个 Object 可以是 Integer,String,自定义对象,Map,List 等。但返回的对象不是作为逻辑视图出现的,而是作为直接在页面显示的数据出现的。返回对象,需要使用@ResponseBody 注解,将转换后的 JSON 数据放入到响应体response中。

步骤:

1-导入Jackson依赖

由于返回 Object 数据,一般都是将数据转化为了 JSON 对象后传递给浏览器页面的。而这个由 Object 转换为 JSON,是由 Jackson 工具完成的。所以还是需要需要导入 Jackson 的相关 Jar 包。

2-声明注解驱动

springmvc return无法返回html页面 springmvc处理返回值_java_06


3-处理器方法需要添加@ResponseBody注解,目的是让框架帮我们做object转json并存入response中这个工作

springmvc return无法返回html页面 springmvc处理返回值_数据_07


提醒下:若返回的值类型为String时,框架自带的消息转换器会将字符串以ISO-8859-1字符集编码返回,所以如果返回的值为字符串时需要在@RequestMapping注解中手动添加
produces = "text/plain;charset=utf-8"设置返回的字符串以UTF-8字符集编码

springmvc return无法返回html页面 springmvc处理返回值_数据_08