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
------解决方案--------------------
给你个例子,在后台也是可以并接成json格式的
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();
}
客户端取json格式的值
$.ajax({
type:'post',//可选get
url:'',
data:{"planDate":datePlan,"content":content},