我在我的应用程序中使用jqgrid并尝试调用servlet将数据提取到我的jqgrid表中,使用JSON。
包含调用servlet的jqgrid代码的jsp如下:
<script >
$(document)
.ready(function() {
$("#list")
.jqGrid({
url: 'http://localhost:9090/YMSAppointment/GridServlet',
datatype: 'json',
mtype: 'POST',
colNames: ['id', 'firstName',
'lastName', 'city', 'state',
'phoneNumber'
],
colModel: [{
name: 'id',
index: 'id',
width: 100
}, {
name: 'firstName',
index: 'firstName',
width: 150,
editable: true
}, {
name: 'lastName',
index: 'lastName',
width: 150,
editable: true
}, {
name: 'city',
index: 'city',
width: 80,
editable: true
}, {
name: 'state',
index: 'state',
width: 100,
editable: true
}, {
name: 'phoneNumber',
index: 'phoneNumber',
width: 80,
editable: true
}],
pager: '#pager',
rowNum: 10,
rowList: [10, 20, 30],
sortname: 'invid',
sortorder: 'desc',
viewrecords: true,
gridview: true,
caption: 'Data Report',
jsonReader: {
repeatitems: false,
},
editurl: "http://localhost:9090/YMSAppointment/GridServlet"
});
jQuery("#list").jqGrid('navGrid', '#pager', {
edit: true,
add: true,
del: true,
search: true
});
});
servlet的post方法如下所示:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
GridModel gridModel1 = new GridModel();
gridModel1.setId(1);
gridModel1.setFirstName("PavanKumar");
gridModel1.setLastName("Mantha");
gridModel1.setCity("Hyderabad");
gridModel1.setState("AndhraPradesh");
gridModel1.setPhoneNumber("1234567890");
GridModel gridModel2 = new GridModel();
gridModel2.setId(2);
gridModel2.setFirstName("PavanKumar");
gridModel2.setLastName("Mantha");
gridModel2.setCity("Hyderabad");
gridModel2.setState("AndhraPradesh");
gridModel2.setPhoneNumber("1234567890");
List<GridModel> gridModels = new ArrayList<>();
gridModels.add(gridModel1);
gridModels.add(gridModel2);
try {
JSONArray jsonArray = (JSONArray)JSONSerializer.toJSON(gridModels);
String json = "{'page':1,'total':'2','records':'1','rows':"+jsonArray+"}";
JSONObject jsonObject = (JSONObject)JSONSerializer.toJSON(json);
PrintWriter out = response.getWriter();
out.print(jsonObject.toString());
}
catch(Exception e){
}
}
我无法将数据从servlet提取到jqgrid中。 我正在创建一个JSON对象时出现错误:
JSONArray jsonArray = (JSONArray)JSONSerializer.toJSON(gridModels);
任何人都可以帮助我使其发挥作用或为我提供任何替代方法。
答案 0 :(得分:0)
猜猜json格式是错误的..而且无需转移到JSONArray
JSONArray jsonArray = (JSONArray)JSONSerializer.toJSON(gridModels);
String json = "{'page':1,'total':'2','records':'1','rows':"+jsonArray+"}";
JSONObject jsonObject = (JSONObject)JSONSerializer.toJSON(json);
PrintWriter out = response.getWriter();
out.print(jsonObject.toString());
更改为
JSONObject jsonobj = new JSONObject();
jsonobj.put("total", totalPages);
jsonobj.put("page", page);
jsonobj.put("records", records);
jsonobj.put("rows", gridModels );
out.println(jsonobj);
希望有所帮助