在使用Ajax向SpringMVC的Controller传递参数,普通参数可以直接传入,但是如果数据太多的话,最好在Controller中使用POJO接受参数,但是这个时候会包415错误,先写解决方案,再写底层原理
原本代码:
$.ajax({
url:"ajax",
data:{name:name},
dataType:"JSON",
method:"POST",
success:function(result){
alert(result.msg);
}
});
controller代码
@RequestMapping("ajax")
@ResponseBody
public Object ajax(@RequestBody User user) {
System.out.println(user.getName());
Message m = new Message();
m.setMsg("错误");
m.setStatus(0);
return m;
}
修改后:
1,添加fastjson-1.2.47.jar包
2,在spring配置文件中添加类型转换类FastJsonHttpMessageConverter
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
3,在jsp请求文件中处理
$("#sub").click(function(){
var name = $("#name").val();
var da = JSON.stringify({name:name}); // 转换成JSON对象
$.ajax({
url:"ajax",
data:da,
dataType:"JSON",
method:"POST",
contentType:'application/json;charset=UTF-8', // 指定请求方式是JSON,这里很重要
success:function(result){
alert(result.msg);
}
});
});
OK。结束
这里先做个记录,具体实现底层以后再写