SpringMVC中Json數據格式轉換


1    @RequestBody

作用:

@RequestBody注解用於讀取http請求的內容(字符串),通過springmvc提供的HttpMessageConverter接口將讀到的內容轉換為json、xml等格式的數據並綁定到controller方法的參數上。

List.action?id=1&name=zhangsan&age=12

本例子應用:

@RequestBody注解實現接收http請求的json數據,將json數據轉換為java對象

 2    @ResponseBody

作用:

該注解用於將Controller的方法返回的對象,通過HttpMessageConverter接口轉換為指定格式的數據如:json,xml等,通過Response響應給客戶端

 

本例子應用:

@ResponseBody注解實現將controller方法返回對象轉換為json響應給客戶端

3  環境配置

  3.1 jar包准備

  Springmvc默認用MappingJacksonHttpMessageConverter對json數據進行轉換,需要加入jackson的包,如下:

  3.2 springmvc.xml文件中的配置

  1) 如果配置文件中配置過注解驅動(<mvc:annotation-driven/>), 則無需多余配置

  2) 如果沒有配置注解驅動, 則需如下配置(不推薦使用這種方式)

  <!--注解適配器 -->

    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">

       <property name="messageConverters">

       <list>

       <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>

       </list>

       </property>

    </bean>

 4. Controller的編寫

 @RequestMapping("/testJson.action")
    @ResponseBody
    public Items testJson (@RequestBody Items items) {
        return items;
    }

  對應jsp頁面中js的編寫

function jsonTest () {
            $.ajax({
                type:"post",
                url:"${pageContext.request.contextPath}/item/testJson.action",
                contentType:"application/json;charset=utf-8",
                data:'{"name":"測試商品","price":99.9}',
                success:function (data) {
                    alert(data.name);
                }
            });
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM