Spring3和jqgrid,我试图从控制器将数据加载到选择选项中,但无法填充

Spring3和jqgrid,我试图从控制器将数据加载到选择选项中,但无法填充,jqgrid,Jqgrid,我正在使用Spring3和jqgrid,除了从控制器将数据加载到select选项之外,一切都正常。我尝试将数据加载到jsion数组对象并发送到jsp页面,但我无法使用 (editoptions: {dataUrl:"location/role.do") 请查看我的代码并帮助我 我的控制器类是 @Controller @RequestMapping("/location") public class AddCenterLocation { @Autowired private

我正在使用Spring3和jqgrid,除了从控制器将数据加载到select选项之外,一切都正常。我尝试将数据加载到jsion数组对象并发送到jsp页面,但我无法使用

(editoptions: {dataUrl:"location/role.do")
请查看我的代码并帮助我

我的控制器类是

@Controller
@RequestMapping("/location")
public class AddCenterLocation {

    @Autowired
    private RecoupService recoupService;

    @RequestMapping(method = RequestMethod.GET)
    public @ResponseBody
    CustomCenterLocationResponse getAll() {
        List<? extends CenterLocation> users = recoupService.getCenter();
        response.setRows(users);
        response.setRecords(String.valueOf(users.size()));
        response.setPage("1");
        response.setTotal("10");
        return response;
    }

    @RequestMapping(value = "/role", method = RequestMethod.GET)
    public @ResponseBody
    CustomGenericResponse role(HttpServletRequest request, HttpServletResponse response) {
        JSONObject jsonArray = new JSONObject();
        try {
            List<CenterLocation> users = recoupService.getCenter();
            for (CenterLocation harbour : users) {
                jsonArray.put(harbour.getCenterId(), harbour.getCenterAddress());
            }
            response.getWriter().write(jsonArray.toString());
        } catch (Exception exception) {
            System.out.println("error is " + exception);
        }
        return null;

    }
@控制器
@请求映射(“/location”)
公共类AddCenterLocation{
@自动连线
私有资源服务资源服务;
@RequestMapping(method=RequestMethod.GET)
公共@ResponseBody
CustomCenterLocationResponse getAll(){

List第一个jackson lib被导入lib文件夹,用于将json数据发送到jsp页面。 然后 创建两个pojo类这仅用于演示,您可以根据需要进行更改

公共类位置{

列表角色

 //setter getter
}

公共阶级角色 {

//塞特吸气剂

}

这是控制器请求

@Controller
@RequestMapping("/location")
public class AddCenterLocation {

    @Autowired
    private RecoupService recoupService;

    @RequestMapping(method = RequestMethod.GET)
    public @ResponseBody
    CustomCenterLocationResponse getAll() {
        List<? extends CenterLocation> users = recoupService.getCenter();
        response.setRows(users);
        response.setRecords(String.valueOf(users.size()));
        response.setPage("1");
        response.setTotal("10");
        return response;
    }

    @RequestMapping(value = "/role", method = RequestMethod.GET)
    public @ResponseBody
    CustomGenericResponse role(HttpServletRequest request, HttpServletResponse response) {
        JSONObject jsonArray = new JSONObject();
        try {
            List<CenterLocation> users = recoupService.getCenter();
            for (CenterLocation harbour : users) {
                jsonArray.put(harbour.getCenterId(), harbour.getCenterAddress());
            }
            response.getWriter().write(jsonArray.toString());
        } catch (Exception exception) {
            System.out.println("error is " + exception);
        }
        return null;

    }
@RequestMapping(value=“/role”,method=RequestMethod.GET)

public@ResponseBody
位置角色(HttpServletResponse){
System.out.println(“名称”);
地点商店=新地点();
列表=新的ArrayList();
角色=新角色();
角色设置ID(“abc”);
角色设置名称(“abc”);
列表。添加(角色);
Role role1=新角色();
角色1.setId(“abc1”);
角色1.集合名(“abc1”);
列表。添加(角色1);
shop.setRole(列表);
退货店;
}
jsp页面

jq(function() {
    jq("#grid").jqGrid({
        url:'location.do',
        datatype: 'json',
        mtype: 'GET',
        colNames:['Id', 'Center Name', 'Address','Country','State','City','Pin Code','Land Line No','Mobile No','Role'],
        colModel:[
            {name:'id',index:'id', width:55,editable:false,editoptions:{readonly:true,size:10},hidden:true},
            {name:'centerName',index:'centerName', width:100,editable:true, editrules:{required:true}, editoptions:{size:10}},
            {name:'centerAddress',index:'centerAddress', width:100,editable:true, editrules:{required:true}, editoptions:{size:10}},
            {name:'centerCountry',index:'centerCountry', width:100,editable:true, editrules:{required:true}, editoptions:{size:10}},
            {name:'centerState',index:'centerState', width:100,editable:true, editrules:{required:true}, editoptions:{size:10}},
            {name:'centerCity',index:'centerCity', width:100,editable:true, editrules:{required:true}, editoptions:{size:10}},
            {name:'centerPinCode',index:'centerPinCode', width:100,editable:true, editrules:{required:true}, editoptions:{size:10}},
            {name:'landLineNo',index:'landLineNo', width:100,editable:true, editrules:{required:true}, editoptions:{size:10}},
            {name:'mobileNo',index:'mobileNo', width:100,editable:true, editrules:{required:true}, editoptions:{size:10}},
            { name: 'Slger', index: 'Slger', editable: true, edittype: "select",
                editoptions: {dataUrl:"location/role.do",
                    buildSelect: function (data) {
                        var response = jQuery.parseJSON(data.responseText);
                        var s = '<select>';
                        if (response && response.length) {
                            for (var i = 0, l = response.length; i < l; i++) {
                                var ri = response[i];
                                s += '<option value="' + ri + '">' + ri + '</option>';
                            }
                        }
                        return s + "</select>";
                    }
                }
            }

        ],
        postData: { 

        },
        rowNum:20,
        rowList:[20,40,60],
        height: 400,
        autowidth: true,
        rownumbers: true,
        pager: '#pager',
        sortname: 'id',
        viewrecords: true,
        sortorder: "asc",
        caption:"Users",
        emptyrecords: "Empty records",
        loadonce: false,
        loadComplete: function() {
        },
        jsonReader : {
            root: "rows",
            page: "page",
            total: "total",
            records: "records",
            repeatitems: false,
            cell: "cell",
            id: "id"
        }
    });
    jq("#grid").jqGrid('navGrid','#pager',
    {edit:false,add:false,del:false,search:true},
    { },
    { },
    { }, 
    { 
        sopt:['eq', 'ne', 'lt', 'gt', 'cn', 'bw', 'ew'],
        closeOnEscape: true, 
        multipleSearch: true, 
        closeAfterSearch: true }
);



    jq("#grid").navButtonAdd('#pager',
    {   caption:"Add", 
        buttonicon:"ui-icon-plus", 
        onClickButton: addRow,
        position: "last", 
        title:"", 
        cursor: "pointer"
    } 
);

    jq("#grid").navButtonAdd('#pager',
    {   caption:"Edit", 
        buttonicon:"ui-icon-pencil", 
        onClickButton: editRow,
        position: "last", 
        title:"", 
        cursor: "pointer"
    } 
);

    jq("#grid").navButtonAdd('#pager',
    {   caption:"Delete", 
        buttonicon:"ui-icon-trash", 
        onClickButton: deleteRow,
        position: "last", 
        title:"", 
        cursor: "pointer"
    } 
);

    jq("#btnFilter").click(function(){
        jq("#grid").jqGrid('searchGrid',
        {multipleSearch: false, 
            sopt:['eq']}
    );
    });

    // Toolbar Search
    jq("#grid").jqGrid('filterToolbar',{stringResult: true,searchOnEnter : true, defaultSearch:"cn"});

});
修改jqgrid的选择部分

{ name: 'name', index: 'name', editable: true, edittype: "select",
 editoptions: {dataUrl:"location/role.do", 
buildSelect: function (role) 
{ 
var data = jQuery.parseJSON(role); 
var s = '<select>'; 
for (var i = 0; i < data.role.length; i++) {
 s += '<option value="' + data.role[i].id + '">' + data.role[i].name + '</option>'; 
} 
return s + "</select>"; 
} 
} 
}
{name:'name',index:'name',可编辑:true,edittype:“select”,
editoptions:{dataUrl:“位置/角色.do”,
buildSelect:功能(角色)
{ 
var data=jQuery.parseJSON(角色);
var s='';
对于(变量i=0;i
一切都会好起来的

{ name: 'name', index: 'name', editable: true, edittype: "select",
 editoptions: {dataUrl:"location/role.do", 
buildSelect: function (role) 
{ 
var data = jQuery.parseJSON(role); 
var s = '<select>'; 
for (var i = 0; i < data.role.length; i++) {
 s += '<option value="' + data.role[i].id + '">' + data.role[i].name + '</option>'; 
} 
return s + "</select>"; 
} 
} 
}