响应数据和结果视图

返回值分类

1、返回值是字符串

Controller方法返回字符串可以指定逻辑视图的名称,根据视图解析器解析为物理视图的地址。
在这里插入图片描述

转换为物理视图地址就是实际上执行时访问的地址

图片说明 逻辑地址物理视图地址:在这里插入图片描述

举例示范

jsp页面
在这里插入图片描述

controller类中的方法
在这里插入图片描述
在这里插入图片描述
跳转的成功页面
在这里插入图片描述
执行成功
在这里插入图片描述
注意:
访问WEB-IND中的pages包中的success.jsp时地址栏并不发生改变
在这里插入图片描述

2、无返回值类型

如果控制器的方法返回值编写成void,执行程序报404的异常,默认查找JSP页面没有找到
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用转发来访问成功页面

默认会跳转到该方法的@RequestMapping路径下,如果我们想跳转到成功页面的话,我们可以使用转发来实现,我们要想完成转发,首先需要两个对象,分别是HttpServletRequest 和HttpServletResponse 在这里插入图片描述
测试在这里插入图片描述
在这里插入图片描述
执行成功,因为是转发,所以页面地址栏不会发生改变

使用重定向访问成功页面

或者我们使用重定向来实现跳转
在这里插入图片描述
访问成功
在这里插入图片描述
先不解决乱码问题,后续解决

直接给@RequestMapping的目录下页面输出文字

在这里插入图片描述
点击超链接
在这里插入图片描述
在这里插入图片描述
输出成功

3、返回值为ModelAndView

ModelAndView对象是Spring提供的一个对象,可以用来调整具体的JSP视图在这里插入图片描述

SpringMVC框架提供的转发和重定向

1、forward请求转发

在这里插入图片描述
首先返回值需要是String,然后返回值固定语法forward:需要转发的路径

2、redirect重定向

在这里插入图片描述

ResponseBody响应json数据

我们首先写一个ajax请求
在这里插入图片描述
然后点击发送ajax
在这里插入图片描述
我们发现并没有hello弹出来,这是因为我们最开始配置的DispatcherServlet配置的拦截路径是/,这表示什么路径都会拦截,这里也包括了我们的静态资源,像js、html、css、图片这些都是静态资源,他都会拦截,这时候我们需要告诉springMVC哪一些资源不拦截
使用如下标签

<!-- 设置静态资源不过滤 --> 
<mvc:resources location="/css/" mapping="/css/**"/> <!-- 样式 --> 
<mvc:resources location="/images/" mapping="/images/**"/> <!-- 图片 --> 
<mvc:resources location="/js/" mapping="/js/**"/> <!-- javascript -->

然后我们重新部署项目,再次点击按钮
在这里插入图片描述
成功弹出
然后我们编写ajax的js
在这里插入图片描述
然后是编写对应url属性的对应路径下的方法
在这里插入图片描述
我们通过@RequestBody 这个注解获取到请求体中的内容,请求体中的内容就是我们编写的ajax中的data属性的值
然后重新部署项目,点击ajax请求按钮,后台成功获取到data传入的json数据在这里插入图片描述
并且我们可以很方便的将从ajax的data中获取到的json数据格式的内容,封装为一个对象
首先我们需要导入springMVC执行这个封装操作所需要的依赖坐标

<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>

并且需要保证ajax传给后天的json字符串中的键值对的键和JavaBean的属性相同
在这里插入图片描述
必须确保完全一致,然后我们只需要将原先的string的参数类型改为User类型即可,在这里插入图片描述
然后再次运行
控制台成功输出该对象
在这里插入图片描述
说明封装成功。

假设我们根据传入进来的对象信息,然后调用dao层的方法进行了更新数据的操作,然后我们再将我们更新后的对象以josn对象的形式返回给客户端浏览器,我们只需要在返回值User的前面加上@ResponseBody这个注解,然后springMVC就能自己帮我们进行格式转换在这里插入图片描述
然后我们改写新的ajax代码
在这里插入图片描述
然后重新部署该代码
在这里插入图片描述
依次弹出
在这里插入图片描述
成功获取到,json对象,有了springMVC的封装,我们再使用ajax就十分的轻松了

posted @ 2021-01-25 12:02  谢海川  阅读(44)  评论(0)    收藏  举报