springmvc 梳理6--返回json数据 @ResponseBody

pom.xml

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.8.sec10</version>
</dependency>

 

 

例子:

加上@ResponseBody,return的东西,不会走视图解析器,也就是不会去找视图了,而是将处理的结果放在响应体中,直接返回

@RequestMapping(value = "/add")
    @ResponseBody
    public String addUser(Integer id,String username,String password,HttpServletRequest request) throws Exception {
    //模型里封装数据
        request.setAttribute("user",new User(id,username,password));
        return "<h1>haha<h1>";
    }

 

 

 

 

 

 

 

 

 

修改

 

 

 

 

 

 

 

 

修改2

@RequestMapping(value = "/add")
    @ResponseBody
    public String addUser(Integer id,String username,String password,HttpServletRequest request) throws Exception {
    //模型里封装数据
        User user = new User(id,username,password);
        String userStr = JSONObject.toJSONString(user);
        return userStr;
    }

 

 

 

 

 

 

 

 

但是每次这么写还是比较麻烦

给容器注入一个消息转换的bean

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!-- 自动扫包 -->
    <context:component-scan base-package="com.xinzhi"/>
    <!-- 让Spring MVC不处理静态资源 -->
    <mvc:default-servlet-handler />

    <!-- 让springmvc自带的注解生效 -->
    <mvc:annotation-driven >
        <mvc:message-converters>
            <bean id="fastjson"
                  class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                        <value>application/json;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>


    <!-- 处理映射器 -->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    <!-- 处理器适配器 -->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
    <!--视图解析器:DispatcherServlet给他的ModelAndView-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          id="InternalResourceViewResolver">
        <!--前缀-->
        <property name="prefix" value="/WEB-INF/page/"/>
        <!--后缀-->
        <property name="suffix" value=".jsp"/>
    </bean>


</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!-- 自动扫包 -->
    <context:component-scan base-package="com.xinzhi"/>
    <!-- 让Spring MVC不处理静态资源 -->
    <mvc:default-servlet-handler />

    <!-- 让springmvc自带的注解生效 -->
    <mvc:annotation-driven >
        <mvc:message-converters>
            <bean id="fastjson"
                  class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                        <value>application/json;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>


    <!-- 处理映射器 -->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    <!-- 处理器适配器 -->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
    <!--视图解析器:DispatcherServlet给他的ModelAndView-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          id="InternalResourceViewResolver">
        <!--前缀-->
        <property name="prefix" value="/WEB-INF/page/"/>
        <!--后缀-->
        <property name="suffix" value=".jsp"/>
    </bean>


</beans>
springmvc-servlet.xml

 

 

测试:

@RequestMapping(value = "/add")
    @ResponseBody
    public User addUser(Integer id,String username,String password,HttpServletRequest request) throws Exception {
    //模型里封装数据
        return new User(id,username,password);
    }

 

 

 

 

 

 

posted @ 2021-01-26 13:56  Master_Sun  阅读(97)  评论(0编辑  收藏  举报