很早之前的一个ajax请求今天突然不能正常显示数据了。
控制台看到报错 POST http://xxx:8081/spider-war/spiderControl.do?method=getTaskList 404 (Not Found)
没改什么呀,怎么错了。debug看list也是查询到的呀。
1 @ResponseBody
2 @RequestMapping(params = "method=getTaskList", produces = { "text/plain;charset=UTF-8" })
3 public String getTaskList(HttpServletRequest request){
4 Map<String, Object> resultMap = new HashMap<String, Object>();
5 try {
6 SpiderTask task = new SpiderTask();
7 List<SpiderTask> list = spiderControlService.selectSpiderTaskList(task);
8 resultMap.put("tasks", list);
9 } catch (Exception e) {
10 e.printStackTrace();
11 resultMap.put("msg", 0);
12 }
13 return JSonUtil.toJSonString(resultMap);
14 }
后来问了问同事,他把把返回对象由 resultMap.put("tasks", list); 换成 resultMap.put("msg", 0);
发现可以了,正常返回说明是这个list有问题了.
这时候我突然想起list里面对象新增了个字段,一定是这问题。
private Integer prefix;
这个字段,
开始我是用int类型,可是这样的话new 对象,这个字段就默认有值了(0),所以后来改成Integer对象类型。
但是这里没改
public int getPrefix() {
return prefix;
}
public void setPrefix(Integer prefix) {
this.prefix = prefix;
}
之后把这改成Integer就返回正常了。其中具体原因我不是特别清楚,但是我觉得应该是他调用了getPrefix导致的问题。