首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

SpringMVC与Jquery.ajax结合时的返回值有关问题

2013-01-23 
SpringMVC与Jquery.ajax结合时的返回值问题我用的是@ResponseBody注解来获得后台返回的东西Jquery代码如下

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结合时的返回值有关问题
SpringMVC Jquery ajax @ResponseBody
[解决办法]

引用:
引用:你的jquery ajax的返回值类型是json格式的,但是java里面返回值并不是json格式,所以error
我现在在后台拼StringBuffer字符串 把list拼一个字符串 返回这个字符串  前台用eval() 这样好使 但是有点麻烦 出了这种还有别的吗  我看网上的例子上有直接返回List和map的 我试了 ……

给你个例子,在后台也是可以并接成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},
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提交失败的处理函数!
});


[解决办法]
SpringMvc 的ajax 这两种方式也可以:
@RequestMapping(value = "/files/queryTest",method = RequestMethod.GET)
public ResponseEntity<Map> queryAllTask1() {
List<Task> tasks = new ArrayList<Task>();
ModelAndView mv = null;
Map<String, Object> map = new HashMap<String, Object>();
return new ResponseEntity<Map>(map, HttpStatus.OK);
}


    @RequestMapping(value = "/files/listTest", method = RequestMethod.GET)
public ModelAndView renwuList(HttpServletRequest request, Model model) {
ModelAndView mv = null;
PagedList pag = new PagedList();
mv = new ModelAndView(new MappingJacksonJsonView(), "p", pag);
return mv;
}

热点排行