1.SpringMVC的数据响应
1.1SpringMVC的数据响应方式
- 页面跳转
- 直接返回字符串
- 通过ModelAndView对象返回
2.回写数据
- 直接返回字符串
- 返回对象或集合
1.2 页面跳转
- 返回字符串形式
直接返回字符串:此种方式会将返回的字符串与视图解析器的前后缀拼接后跳转。
返回带有前缀的字符串:
转发:forward:/WEB-INF/VIEWS/index.jsp
重定向:redirect:/index.jsp
1.3 回写数据
Web基础阶段,客户端访问服务器端,如果想直接回写字符串作为响应体返回的话,只需要response.getWriter().print("hello world")即可,那么在Controller中想直接回写字符串该怎么样呢?
①.通过SP日功能MVC框架注入的resoponse对象,使用response.getWriter(),print("hello world")回写数据,此时不需要视图跳转,业务方法返回值为void。
@RequestMapping("/quick6")
public void save6(HttpServletResponse response) throws IOException {
// response.setContentType("text/html;charset=utf8");
response.getWriter().print("你个牛马!");
}
1.直接返回字符串
②.将需要回写的字符串知己返回,单此时需要通过@ResponseBody注解告知SpringMVC框架,返回的字符串不是跳转是是直接在http响应体中返回。
@RequestMapping("/quick7")
@ResponseBody // 告知SpringMVC框架 不进行视图跳转 直接进行数据响应
public String save7(){
return "li zhen xin";
}
2.返回对象或集合
通过SPringMVC帮助我们对对象或集合进行json字符串的转换并回写,为处理适配器配置消息转换参数,指定使用SpringMVC进行对对象或集合的转换,因此需要在SpringMVC.xml进行如下配置:
<!-- 配置处理器映射-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</list>
</property>
</bean>
在方法上添加@ResponseBody就可以返回json格式的字符串,但是这样配置比较麻烦,配置的代码比较多,因此,我们可以使用mvc的注解驱动代替上述配置。
<!--mvc的注解驱动-->
<mvc:annotation-driven/>
在SpringMVC的各个组件中,处理器映射器、处理器适配器、视图解析器称为SpringMVC称为SpringMVC的三大组件。使用<mvc:annotation-driven>自动加载RequestMappingHandlerMapping(处理器映射)和RequestMappingHandlerAdapter(处理适配器),可用在Spring-xm.xml配置文件中使用<mvc:annotation-driven>替代注解处理器和适配器的配置。
同时使用<mvc:anntotation-driven>默认底层就会集成Jackson进行对象或集合的json格式字符串的转换。