首页 > 代码库 > springMVC学习(11)-json数据交互和RESTful支持
springMVC学习(11)-json数据交互和RESTful支持
一、json数据交互:
json数据格式在接口调用中、html页面中较常用,json格式比较简单,解析还比较方便。
比如:webservice接口,传输json数据.
springMVC进行json交互
1)环境准备:
加载json转换的jar包:
springmvc中使用jackson的包进行json转换(@requestBody和@responseBody使用下边的包进行json转)
jackson-core-asl-1.9.11.jar
jackson-mapper-asl-1.9.11.jar
2)配置json转换器;
如果是配置单个的注解适配器,要加入下面配置:
1 <!--注解适配器 --> 2 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> 3 <property name="messageConverters"> 4 <list> 5 <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean> 6 </list> 7 </property> 8 </bean>
如果使用<mvc:annotation-driven /> 则不用定义上边的内容。
3)代码实现:测试:
1 package com.cy.controller; 2 3 import org.springframework.beans.factory.annotation.Autowired; 4 import org.springframework.stereotype.Controller; 5 import org.springframework.web.bind.annotation.RequestBody; 6 import org.springframework.web.bind.annotation.RequestMapping; 7 import org.springframework.web.bind.annotation.ResponseBody; 8 9 import com.cy.po.ItemsCustom; 10 import com.cy.service.ItemsService; 11 12 /** 13 * json交互测试 14 * 15 */ 16 @Controller 17 public class JsonTest { 18 19 @Autowired 20 private ItemsService itemsService; 21 22 //请求json串(商品信息),输出json(商品信息) 23 //@RequestBody将请求的商品信息的json串转成itemsCustom对象 24 @RequestMapping("/requestJson") 25 @ResponseBody 26 public ItemsCustom requestJson(@RequestBody ItemsCustom itemsCustom) throws Exception{ 27 int id = itemsCustom.getId(); 28 ItemsCustom itemsCustom2 = itemsService.findItemsById(id); 29 return itemsCustom2; 30 } 31 32 //请求key/value,输出json 33 //@ResponseBody将itemsCustom转成json输出 34 @RequestMapping("/responseJson") 35 @ResponseBody 36 public ItemsCustom responseJson(ItemsCustom itemsCustom) throws Exception{ 37 int id = itemsCustom.getId(); 38 ItemsCustom itemsCustom2 = itemsService.findItemsById(id); 39 return itemsCustom2; 40 } 41 }
jsp页面:
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>json交互测试</title> 8 <script type="text/javascript" src="http://www.mamicode.com/${pageContext.request.contextPath }/js/jquery-1.4.4.min.js"></script> 9 <script type="text/javascript"> 10 //请求json,输出是json 11 function requestJson(){ 12 $.ajax({ 13 type:‘post‘, 14 url:‘${pageContext.request.contextPath }/requestJson.action‘, 15 contentType:‘application/json;charset=utf-8‘, 16 //数据格式是json串,商品信息 17 //这边很严格的做了测试,必须是这种格式; 18 //key加引号;整个{}加引号;整个就是一个json串;有点像JOSN.stringify(JOSNObject)这样子 19 data:‘{"id":1,"name":"手机","price":999}‘, 20 success:function(data){ 21 console.log(data); 22 } 23 24 }); 25 } 26 //请求key/value,输出是json 27 function responseJson(){ 28 $.ajax({ 29 type:‘post‘, 30 url:‘${pageContext.request.contextPath }/responseJson.action‘, 31 data:‘id=4&name=手机&price=999‘, 32 success:function(data){//返回json结果 33 console.log(data); 34 } 35 }); 36 } 37 </script> 38 </head> 39 <body> 40 <input type="button" onclick="requestJson()" value="http://www.mamicode.com/请求json,输出是json"/> 41 <input type="button" onclick="responseJson()" value="http://www.mamicode.com/请求key/value,输出是json"/> 42 </body> 43 </html>
测试结果:
数据库内容:
requestJson:
responseJson:
二、RESTful支持:
springMVC学习(11)-json数据交互和RESTful支持
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。