前端代码:
提交json数据给控制器
<form id="form">
<table>
<tr><td>年龄:</td><td><input name="age" id="age1"></td></tr>
<tr><td>班级:</td><td><input name="classname" id="classname1"></td></tr>
<tr><td> </td><td><input type="button" value="提交" id="commit"></td></tr>
</table>
</form>
<script type="text/javascript">
$(document).ready(function(){
$("#commit").click(function(){
var age=$("#age1").val();
$.ajax({
url:"sbmt.do",
type:"POST",
data: JSON.stringify({"age":age,'className':"一年级"}),
dataType:"json",
contentType:"application/json",
success:function(data){
alert("成功");
alert(data.age);
},
error:function(data){
alert("失败");
}
});
});
})
</script>
控制器:
RequestMapping(value="/sbmt.do",consumes="application/json",method=RequestMethod.POST)
@ResponseBody
public String getUserInfo(@RequestBody UserInfo info){
System.out.println("json提交");
int age=info.getAge();
System.out.println("age="+age);
String ss="{\"age\":"+age+"}";
JSONObject json = null;
try {
json = new JSONObject(ss);
} catch (JSONException e) {
e.printStackTrace();
}
System.out.println("json="+json.toString());
return json.toString();
}
UserInfo 为只含age和className的pojo类,
最开始的时候servelt-cfg配置
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsps/"/>
<property name="suffix" value=".jsp"/>
</bean>
在进入控制器的时候直接抛出415错误,查找了很多资料后发现是json数据解析的时候出错,
修改视图解析器,处理数据
<bean
class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="order" value="1" />
<property name="mediaTypes">
<map>
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
<entry key="htm" value="text/html" />
</map>
</property>
<property name="viewResolvers">
<list>
<bean
class="org.springframework.web.servlet.view.BeanNameViewResolver" />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsps/" />
<property name="suffix" value=".jsp" />
</bean>
</list>
</property>
<property name="defaultViews">
<list>
<!-- JSON View -->
<bean
class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
</bean>
</list>
</property>
<property name="ignoreAcceptHeader" value="true" />
</bean>
需要导入jackjson 包:
1.jackson-annotations-2.2.1.jar 2.jackson-core-2.2.1.jar 3.jackson-core-asl-1.8.8.jar 4.jackson-databind-2.2.1.jar 5.jackson-mapper-asl-1.8.8.jar 6.jackson-module-jaxb-annotations-2.2.1.jar