SpringMVC的数据响应

本文主要探讨了SpringMVC中数据响应的三种方式:页面跳转、回写数据。在页面跳转部分,介绍了直接返回字符串和使用forward/redirect的方式。在回写数据部分,讲解了如何通过response.getWriter()直接回写字符串,以及使用@ResponseBody注解返回JSON数据。最后提到了SpringMVC的注解驱动配置,如<mvc:annotation-driven>,它简化了对象或集合转换为JSON的过程。
摘要由CSDN通过智能技术生成

1.SpringMVC的数据响应

1.1SpringMVC的数据响应方式

  1. 页面跳转
  • 直接返回字符串
  • 通过ModelAndView对象返回

        2.回写数据

  • 直接返回字符串
  • 返回对象或集合

1.2 页面跳转

  1. 返回字符串形式

直接返回字符串:此种方式会将返回的字符串与视图解析器的前后缀拼接后跳转。

 

返回带有前缀的字符串:

转发: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格式字符串的转换。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值