Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 关于使用jgGrid创建动态柱的问题_Spring Mvc_Jqgrid_Thymeleaf - Fatal编程技术网

Spring mvc 关于使用jgGrid创建动态柱的问题

Spring mvc 关于使用jgGrid创建动态柱的问题,spring-mvc,jqgrid,thymeleaf,Spring Mvc,Jqgrid,Thymeleaf,我做了一个演示,用jqGrid表创建动态列,但遇到了一些问题。这是jqGrid代码片段: $.ajax( { type: "get", url: "reports/providerList", dataType: "json", success: function(result) { var colNames = result.rows.colNames; va

我做了一个演示,用
jqGrid
表创建动态列,但遇到了一些问题。这是jqGrid代码片段:

$.ajax(
    {
        type: "get",
        url: "reports/providerList",
        dataType: "json",
        success: function(result)
        {
            var colNames = result.rows.colNames;
            var colModels = result.rows.colModels;
            $(grid_selector).jqGrid('GridUnload');

            jQuery(grid_selector).jqGrid({
                url: 'reports/getData',
                datatype: 'json',
                mtype: 'get',
                colNames: colNames,
                colModel: colModels,
                viewrecords : true,
                rownumbers:true,
                rowNum:15,
                rowList:[15,30],
                pager : pager_selector,
                altRows: true,
                loadComplete : function() {
                    var table = this;
                    setTimeout(function(){
                        updatePagerIcons(table);
                        enableTooltips(table);
                    }, 0);
                },
            });
        },
        error: function(x, e)
        {
            alert(x.readyState + " "+ x.status +" "+ e.msg);
        }
    });
我的后端控制器:

    @GetMapping("/providerList")
    @ResponseBody
    public Map<String, Object> providerList(@RequestParam(value = "rows", required = false) Integer pageSize, @RequestParam(value = "page", required = false) Integer pageNumber){
        JQGridModel jqGridModel = new JQGridModel();
        Map<String, Object> map = new HashedMap();
        map.put("total", 4);
        map.put("rows", jqGridModel);
        map.put("records", 6);
        return map;
    }

    @GetMapping("/getData")
    @ResponseBody
    public Map<String, Object> getData(){
        List<ColData> colDatas = new ArrayList<>();
        ColData colData1 = new ColData(2, "hello", new Date().toString(), "true", "admin");
        ColData colData2 = new ColData(5, "say", new Date().toString(), "false", "pechen");
        colDatas.add(colData1);
        colDatas.add(colData2);
        colDatas.add(colData2);

        Map<String, Object> map = new HashedMap();
        map.put("total", 4);
        map.put("rows", colDatas);
        map.put("records", 6);
        return map;
    }
@GetMapping(“/providerList”)
@应答器
公共映射提供程序列表(@RequestParam(value=“rows”,required=false)整数页面大小,@RequestParam(value=“page”,required=false)整数页面编号){
JQGridModel JQGridModel=新的JQGridModel();
Map Map=newhashedmap();
地图。投入(“总计”,4);
map.put(“行”,jqGridModel);
地图放置(“记录”,6);
返回图;
}
@GetMapping(“/getData”)
@应答器
公共地图getData(){
List colDatas=new ArrayList();
ColData colData1=newcoldata(2,“你好”,new Date().toString(),“真”,“管理员”);
ColData colData2=new ColData(5,“say”,new Date().toString(),“false”,“pechen”);
colDatas.add(colData1);
colDatas.add(colData2);
colDatas.add(colData2);
Map Map=newhashedmap();
地图。投入(“总计”,4);
map.put(“行”,colDatas);
地图放置(“记录”,6);
返回图;
}
后端的数据格式:

public class JQGridModel {
    private List<String> colNames;
    private List<ColModel> colModels;

    public JQGridModel() {
        colNames = new ArrayList<>();
        colNames.add("id");
        colNames.add("name");
        colNames.add("createTime");
        colNames.add("status");
        colNames.add("updateBy");

        colModels = new ArrayList<>();
        ColModel colModel1 = new ColModel("id", "id", 60f, false, false);
        ColModel colModel2 = new ColModel("name", "index", 60f, false, false);
        colModels.add(colModel1);
        colModels.add(colModel2);
        colModels.add(colModel2);
        colModels.add(colModel2);
        colModels.add(colModel2);
    }
}
公共类JQGridModel{
私人名单姓名;
私有列表模型;
公共JQGridModel(){
colNames=newarraylist();
colNames.add(“id”);
colNames。添加(“名称”);
添加(“createTime”);
colNames.add(“状态”);
colNames.add(“updateBy”);
colModels=newarraylist();
ColModel colModel1=新的ColModel(“id”,“id”,60f,false,false);
ColModel colModel2=新的ColModel(“名称”,“索引”,60f,false,false);
colModels.add(colModel1);
colModels.add(colModel2);
colModels.add(colModel2);
colModels.add(colModel2);
colModels.add(colModel2);
}
}
但我只是想得到这个结果,在某些列中没有显示数据:


我注意到
/reports/providerList
/reports/getData
在调试模式下被点击。出了什么问题,有人能帮忙吗?

在我看来,错误的根源似乎是您的
JQGridModel
构造函数的最后几行。您可以多次使用
colModels.add(colModel2)
。这是错误的。
colNames
包含标签:列标题中显示的文本。允许在
colNames
中使用重复或空字符串。另一方面,
colModel
必须包含unique
name
值,这些值不能为空,不能包含空格


您必须更改
JQGridModel
constructor
colModels
的代码,以使用当前用于填充
colNames

的名称来填充它。谢谢,这确实是错误的原因,并且
name
应该与colData中的
字段
相同。