.Net轉Java自學之路—SpringMVC框架篇七(Json數據交互)

SpringMVC進行Json交互:前端

  客戶端發送請求。若該請求K/V串是Json串時,這時會通過controller的參數綁定,進行Json數據的轉換,轉換時,在SpringMVC中,經過註解@RequestBody將Json串轉成Java對象。@ResponseBody將Java對象轉成Json串輸出。若該請求只是K/V,而不是Json串,則只是用@ResponseBody將Java對象轉成Json串輸出。最終都輸出Json數據,爲了在前端頁面方便對請求結果進行解析。web

請求Json、響應Json實現:ajax

  SpringMVC默認使用MappingJacksonHttpMessageConverter對Json數據進行轉換(@RequestBody和ResponseBody),須要加入jackson包。spring

  配置Json轉換器,在註解適配器中加入messageConverters。json

<!-- 註解適配器
    注:若使用註解驅動標籤mvc:annotation-driven則不用定義該內容 -->
<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>

  輸入Json,輸出Json:mvc

    使用Jquery的ajax提交json串,對輸出的json結果進行解析。app

$.ajax({
    type:"post",
    url:"${pageContext.request.contextPath }/requestJson.action",
    contentType:"application/json;charset=utf-8",
    data:{}
    success:function(){
    
    },
    error:function(){
        
    }
});

  輸入key/value,輸出Json:post

$.ajax({
    type:"post",
    url:"${pageContext.request.contextPath }/responseJson.action?key=value",
    success:function(){
    
    },
    error:function(){
        
    }
});
@Controller
public class GoodsJsonTest{
    //@RequestBody GoodsCustom goodsCustom將請求的data中輸入的Json串轉成Java對象GoodsCustom
    //@ResponseBody GoodsCustom將Java對象轉Json
    @RequestMapping("/requestJson")//指定頁面
    public @ResponseBody GoodsCustom requestJson(@RequestBody GoodsCustom goodsCustom){
        return goodsCustom;
    }
    
    @RequestMapping("/responseJson")
    public @ResponseBody GoodsCustom requestJson(GoodsCustom goodsCustom){
        return goodsCustom;
    }
}
相關文章
相關標籤/搜索