0

Controller 中的代码

    @RequestMapping("/list")
    @ResponseBody
    public List<WorkLog> AllLog(){
        List<WorkLog> sh = workLogService.AllLog(); 
        System.out.println("*******************************");
        System.out.println(sh);
        return sh;
    }

JS部分

<script>
        var data;
        $("#serach1").click(function(){
            $.ajax({  
                type: "POST",  
                url: "list",  
                dataType:"json",  
                success: function(worklog){  
                    data =JSON.stringify(worklog.sh);
                    alert(data);
                }
             });   
        });
</script>

直接访问/list


点击访问:

控制台(这个不怎么会看)

我现在感觉就是ajax中的内容写错了。但是找不到问题所在。

5个回答

1

已采纳

你后台返回的是个sh 所以ajax的回调函数里的参数就是你后台返回的数据 ,不需要点它

1
success: function(data) {
  console.log(data);
}
1

为啥 worklog.sh? 后端返回没见有sh这个字段。如果想看后端到底返回了什么, 可以 console.log(worklog)

0

对于后台传回来的数据,你可以先把list转换成json数组,
StringBuilder stringbuilder = .... 获取list中的内容,转成字符串
JSONArray jsonarray = JSONArray.fromObejct(stringbuilder); // 转成json数组

前台:
var json = eval(json); // 把获取的数据转成json数组
对json遍历,获取其中的每一个对象

0

JS部分的ajax,响应worklog没有sh属性,所以worklog.sh变成了undefined
尝试:

data =JSON.stringify(worklog);

还不行,就敲个断点,debug看看worklog是什么

撰写答案