后端代码(注意红色部分)

@RequestMapping(value="/getJobByLevel.action", method = RequestMethod.POST)
public @ResponseBody Object getJobByLevel( @RequestBody Map<String,String> queryConditionMap) {
    List<RhJobDto> listRhJobinfo = rhJobService.getJobByLevel(  queryConditionMap.get("jobLevel"),queryConditionMap.get("level1Code"),queryConditionMap.get("level2Code"),"");
    return listRhJobinfo;
}

前端代码(注意红色部分):

/**
 * 初始化job下拉复选框
 */
function initJob(){
    var json = {
        jobLevel:'1'
    };
    $.ajax({
        type: "POST",
        url: "../bireport/getJobByLevel.action",
        contentType : "application/json",
        dataType:"json",
        data: JSON.stringify(json),
        success: function(resp){
            var job= "";
            for(var city in resp){
               //l3Code 是list中实体的参数名称
                job += "<option value='"+resp[city].l3Code+"'>"+resp[city].l3Name+"</option>"
               // 注意 如果属性名称是变量或者动态的的,那么取值方式可以采用data[city][attributeName],attributeName是变量
            }

            $("#firstJob").html(job);
            $('#firstJob').selectpicker("refresh");
        },
        error:function(resp){
            $.messager.alert('出错了','系统出错,请联系管理员。','error');
        }
    });
}

下面对应时动态获取返回List的实例代码

后台返回值得封装:
        // 一个map对应表中的一行数据
        List<Map<String, Object>> list = generalService.listDataWithPage(start,end,tableName);

        //  获取表结构,一个map对应一个列的信息
        List<Map<String, String>> columns = generalService.listTableColumns(tableName);

        // 6 封装返回数据
        HashMap<String, Object> returnMap = new HashMap<>();
        returnMap.put(GeneralConstants.COLUMNS,columns);
        returnMap.put("data",list);
        return returnMap;


   前端取值方式:
            var data = resp["data"];
            var columns = resp["columns"];

            var tableBodyDiv = "";
            var columnName ;
            var dataValue ;
            var idValue;
            // 获取主键对应的列名
            // var primaryKeyColumn = primaryKey.split(",");
            for(var index in data){
                // 一次循环对应列表的一行,即实际数据库中的一条记录
                tableBodyDiv += "<tr>"
                // 获取主键对应的值
                idValue = getPrimaryValue(data[index]);

                tableBodyDiv += "<td>&nbsp;&nbsp;&nbsp;<input type=\"checkbox\" name='general' onclick='cancelOthers(this.value)' value='"+idValue+"'></td>"
                // 遍历所有的列获取该列对应的实际值
                for(var i in columns){
                    // 获取列名
                    columnName = columns[i].Field;
                    // 获取每列对应的实际值
                    dataValue = data[index][columnName];
                    tableBodyDiv += "<td>"+dataValue+"</td>";
                }
                tableBodyDiv += "</tr>"
            }

红色部分原因可以参考:https://blog.csdn/h2604396739/article/details/83784707,这个是返回map的实例,讲的详细点

 

更多推荐

ajax请求返回List