SpringMVC与Jquery.ajax结合时的返回值问题
我用的是@ResponseBody注解来获得后台返回的东西
Jquery代码如下
$.ajax({
url : "/project/test",
type : "GET",
contentType : "application/json",
dataType : "json",
success : function(data) {
alert(data)
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert("error");
}
}
Controller如下
/**
* 测试Jquery.ajax
*/
@ResponseBody
@RequestMapping(value = "/project/test")
public List test() {
System.out.println("进入此方法");
Map<String, Object> map = new HashMap<String, Object>();
List list = new ArrayList();
return list;
}
如果返回值是一个String,int,或者空的list等 都能进入Jquery.ajax的success方法 值(int String)也能接收到,但是如果向list中add一个实体类 例如
/**
* 测试Jquery.ajax
*/
@ResponseBody
@RequestMapping(value = "/project/test")
public List test() {
System.out.println("进入此方法");
Map<String, Object> map = new HashMap<String, Object>();
List list = new ArrayList();
list.add(new User("sy","23"));
return list;
}
这样就会走入Jquery.ajax的error方法 请问这是为什么
我用的是maven项目 框架是SpringMVC 配置文件什么的应该都对 因为其他功能都好使 还是说SpringMVC与Jquery.ajax联系起来还要配置其他的 jar包的话 上网搜 说的是需要jackson的包 我得项目中有jackson-core-asl-1.8.3.jar 和 jackson-mapper-asl-1.8.3.jar
万分感谢
SpringMVC Jquery ajax @ResponseBody
[解决办法]
PrintWriter out = null;
String jsonText = "[{"result":"添加工作计划成功!","id":""+planItem.getFiwpitemId()+
"","planDate":""+planDate+""," +
""content":""+content+"","responseMan":""+uMap.get(responseMan)+""}]";
try {
out = this.getResponse().getWriter();
JSONArray jsonArray = JSONArray.fromObject(jsonText);
out.print(jsonArray);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
out.flush();
out.close();
}
$.ajax({
type:'post',//可选get
url:'',
data:{"planDate":datePlan,"content":content},
dataType:'json',//服务器返回的数据类型 可选XML ,Json jsonp script html text等
success:function(result){
result[0].planDate;
result[0].result;
result[0].content;
result[0].id;
result[0].responseMan;
//这里是ajax提交成功后,PHP程序返回的数据处理函数。msg是返回的数据,数据类型在dataType参数里定义!
},
error:function(){
//ajax提交失败的处理函数!
});