导入jar包
jackson-annotations-2.10.0.pr2.jar
jackson-core-2.10.0.pr2.jar
jackson-databind-2.10.0.pr2.jar
环境配置
1 2 3 4 5 6 7 8
| <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean> </list> </property> </bean>
|
如果使用注解驱动<mvc:annotation-driven />,则不需要上面的长串配置
两种方式
1 2 3 4 5 6 7 8 9 10 11 12 13
| function requestJson(){ $.ajax({ type:'post', url:'${pageContext.request.contextPath}/requestJson.action', contentType:'application/json;charset=utf-8', data:'{"name":"王富贵","age":12}', success:function( data){/ /返回json结果 alert(data); } }); }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| function responseJson(){ $.ajax({ type:'post', url:'${pageContext.request.contextPath}/responseJson.action', data:'name=王富贵&age=12', success:function(data){/ /返回json结果 alert(data); } }); }
|
controller中的方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| @Controller public class JsonTest { @RequestMapping( "/requestJson") public @ResponseBody Student requestJson(@RequestBody Student student){ return Student; } @RequestMapping("/responseJson") public @ResponseBody ItemsCustom responseJson(ItemsCustom itemsCustom){ return itemsCustom; } }
|
返回数据乱码问题
java中文件
1 2 3 4 5 6 7 8 9 10
| @RequestMapping("show") @ResponseBody public User show(){ System.out.println("接收load"); User user = new User(); user.setName("编号001"); user.setAge(12); user.setSex("男"); return user; }
|
使用ajax中的$(selector).load(url,data,function(resultDate){})获取数据填充到该选择器中
1 2 3
| $("#btn1").click(function() { $("#msg").load("show"); });
|
在springmvc.xml配置文件中添加
1 2 3 4 5 6 7 8 9 10 11 12
| <mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=utf-8</value> <value>text/html;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
|
注意事项
前台请求数据最终必须是json格式的字符串
如果是请求参数是对象,则可以使用JSON.stringify(data)方法转换
请求必须加上 contentType: "application/json",
后台使用对象接收 getJson(@RequestBody User user)