springMVC_json格式数据的接收和发送(未解决中文乱码问题)

来源:互联网 发布:盛科网络上市 编辑:程序博客网 时间:2024/05/20 23:07

本文是基于springMVC+jsp+jquery+json,做本次实践之前需要准备一下文件:

1.josn需要依赖的两个jar包:

网址:http://mvnrepository.com/artifact/org.codehaus.jackson

2.json需要依赖的两个js文件(本次实践基于jquery):

网址:http://code.google.com/p/jquery-json/

网址:http://jquery.com/download/

3.配置xxx-servlet.xml文件(springMVC配置文件):

配置如下:

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"><property name="messageConverters"><list><bean class="org.springframework.http.converter.StringHttpMessageConverter"><property name="supportedMediaTypes"><list><value>text/html;charset=UTF-8</value></list></property></bean></list></property></bean><bean id="mappingJacksonHttpMessageConverter"class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
4.设计jsp页面(简单说明):

<body><form action="#" method="post"><input type="text" name="name"><input type="button" value="ajax"></form></body>

5.引用相应的js文件,ajax代码如下:

$(function(){$.fn.serializeObject = function () {var o = {};var a = this.serializeArray();$.each(a, function () {if (o[this.name]) {if (!o[this.name].push) {o[this.name] = [o[this.name]];}o[this.name].push(this.value || "");} else {o[this.name] = this.value || "";}});return o;};$("form input:button").bind("click",function(){var name = $.toJSON($("form input:text:eq(0)").serializeObject());alert(name);jQuery.ajax({type:"POST",contentType:"application/json",url:"/hello/testjson",data:name,dataType:"json",success:function(data){alert(data.success);},error:function(XMLHttpRequest , textStatus, errorThrown){alert("textStatus:"+textStatus);alert("Error:"+errorThrown);},async:true});});});

6.设计后台ajax接受方法(这里使用一个变量接受):

@RequestMapping(           value="/testjson",           method={RequestMethod.GET,RequestMethod.POST})@ResponseBodypublic Map<String,String> testJson(        HttpServletResponse response,        HttpServletRequest request,         @RequestBody String name        ){    System.out.println("name:"+name);    Map<String,String> map = new HashMap<String,String>();    try {        if(!validateString(name)){            map.put("success", "no");            return map;        }        map.put("success", "yes");        return map;        } catch (Exception e) {            map.put("error", e.getMessage());            return map;        }}

执行如下操作:

结果: name:{"name":"zs"}


修改 第6步操作,代码如下(这里使用一个Vo接受json数据,Vo中包含一个name属性):

@ResponseBodypublic Map<String,String> testJson(        HttpServletResponse response,        HttpServletRequest request,         @RequestBody JsonVo jsonVo        ){    System.out.println("name:"+jsonVo.getName());    Map<String,String> map = new HashMap<String,String>();    try {        if(!validateString(jsonVo.getName())){            map.put("success", "no");            return map;        }        map.put("success", "yes");        return map;        } catch (Exception e) {            map.put("error", e.getMessage());            return map;        }}

执行如下操作:

结果: name:zs





原创粉丝点击