SpringMVC响应数据和结果视图

文章目录

          • String类型
          • void类型
          • request转发
          • Response重定向
          • ModelAndView类型
          • RespnoseBody响应

String类型

String类型的响应是最常用的方式,直接返回一个视图名称,然后通过视图解析器进行解析,返回相应的视图,示例如下:
SpringMVC响应数据和结果视图_第1张图片
这个是前面写的一个demo,直接返回“success”,然后去看一下视图解析器
SpringMVC响应数据和结果视图_第2张图片
可以看到,对String返回类型,视图解析器对前缀和后缀进行了定义,我们到/WEB-INF/pages/下面去找对应的视图
SpringMVC响应数据和结果视图_第3张图片
确实在指定路径下有success.jsp视图

void类型

如果我们返回void类型,会出现什么情况?

这里先给出结论,如果是void类型,SpringMVC会默认去视图解析器指定路径下找RequestMapping定义的同名视图,示例如下:

先定义一个路由
SpringMVC响应数据和结果视图_第4张图片
访问该路由
在这里插入图片描述
SpringMVC响应数据和结果视图_第5张图片
可以看到默认确实是去找了同名视图,其实返回void类型,我们可以通过request进行转发,或者使用response进行重定向,可以达到相同的跳转效果

request转发

SpringMVC获取request的方法前面也已经讲过了,转发同样用到response,直接在参数中标明即可:
SpringMVC响应数据和结果视图_第6张图片
直接写一段转发逻辑,转到我们的success页面
在这里插入图片描述
SpringMVC响应数据和结果视图_第7张图片
成功跳转到了成功页面,而且url不变,表示是一次请求,服务器端的行为

Response重定向

同理,我们来测试void类型下的重定向,示例如下:
SpringMVC响应数据和结果视图_第8张图片
这里没有去尝试跳转到success界面的原因,就是WEB-INF下的所有资源对外不可访问,只能由服务器内部来获取,所以这里无法跳转到该目录下面

ModelAndView类型

ModelAndView和第一种String跳转的方式都差不多,也是通过视图解析器来进行的,示例如下:

SpringMVC响应数据和结果视图_第9张图片
通过ModelAndView返回值跳转,还可以在model中添加参数,添加参数是往request域中添加,我们在success中打印requestSocpe来进行验证:
SpringMVC响应数据和结果视图_第10张图片
返回成功页面
SpringMVC响应数据和结果视图_第11张图片

RespnoseBody响应

使用@ResponseBody实现将返回值以json的形式返回给客户端,先来完成一下前端页面,这里直接在index中添加js内容

引入jquery
链接:https://pan.baidu.com/s/1WMUJJV_DNxCIgvptiuOnhQ
提取码:12yv

测试jquery的引入,这里需要注意,由于前端控制器会以“/”来进行匹配,“/”会拦截所有的请求除了jsp,所以客户端在获取jquery资源的时候也会被拦截,所以我们要取消对静态资源的拦截,需要设置resources为资源目录,否则部署后不可见
SpringMVC响应数据和结果视图_第12张图片
SpringMVC响应数据和结果视图_第13张图片

配置完后就可以测试jquery是否引入成功,如果成功,我们就假定给服务器端发送一个json信息,然后服务器端也会响应一个json

SpringMVC响应数据和结果视图_第14张图片
SpringMVC响应数据和结果视图_第15张图片
测试结果:
SpringMVC响应数据和结果视图_第16张图片

SpringMVC响应数据和结果视图_第17张图片

你可能感兴趣的:(Spring,MVC)