jqgrid json数据类型与弹簧mvc
问题描述:
我是jqgrid的新手,我试图模拟上面的代码,但它不工作。在服务器端我已经创建的类jqgrid json数据类型与弹簧mvc
public class TaskBean {
String orderId;
String realty;
String building;
String priority;
String action;
String assignee; // add getter/setter methods
}
TaskBeanList.java
public class TaskBeanList {
private String page;
private String total;
private String records;
private List<TaskBean> rows;
}
春季控制器代码
@RequestMapping("/page4.htm")
public @ResponseBody TaskBeanList getJQGridData(HttpServletRequest request, HttpServletResponse response) {
System.out.println("xml data");
List<TaskBean> taskList = new ArrayList<TaskBean>();
taskList.add(new TaskBean("Task1", "K-CY-329", "144", "G-3", "1", "Pending", "XYZ"));
taskList.add(new TaskBean("Task2", "K-CY-356", "165", "A-10", "4", "Closed", "ABC"));
taskList.add(new TaskBean("Task3", "K-CY-343", "768", "B-12", "3", "Pending", "IJK"));
taskList.add(new TaskBean("Task4", "K-CY-786", "918", "F-9", "2", "Open", "PQR"));
TaskBeanList tsklst = new TaskBeanList("1", "5", "20", taskList);
return tsklst;
}
客户端jqGrid的JS代码
jQuery(document).ready(function(){
jQuery("#list3").jqGrid({
autowidth: true,
datatype : "json",
url: "http://localhost:8080/SpringMVC/page4.htm",
mtype: 'get',
colNames : ["Title","Order ID","Realty","Building",
"Priority","Action","Assignee"],
colModel : [
{label: "Title", name: "title", index: "Title", jsonmap: "orderId"},
{label: "OrderID", name: "orderId", index: "OrderID", jsonmap: "orderId"},
{label: "Realty", name: "realty", index: "Realty", jsonmap: "realty" },
{label: "Building",name: "building",index: "Building",jsonmap: "building"},
{label: "Priority",name: "priority",index: "Priority",jsonmap: "priority"},
{label: "Action", name: "action", index: "Action", jsonmap: "action" },
{label: "Assignee",name: "assignee",index: "Assignee",jsonmap: "assignee"}
],
sortname : "Title",
sortorder : "desc",
shrinkToFit: true,
viewrecords: true,
jsonReader : {
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: false,
cell: "cell",
id: "id",
userdata: "userdata",
subgrid: {root:"rows",
repeatitems: true,
cell:"cell"
}
}
}); });
任何一个可以帮助解决t他?当我看到jqgrid示例代码时,看起来很简单,但我没有看到任何输出。输出页面为空。请帮助解决。
感谢
答
我建议你看看下面的教程第一:
的jqGrid和Spring 3 MVC集成教程在http://krams915.blogspot.com/2010/12/jqgrid-and-spring-3-mvc-integration.html
或许可以从该教程中找到答案,或者至少将细化你在找什么。
答
@ user669789首先通过克里斯提到的克拉姆斯教程。我也是jqgrid的新手,但是教程和源代码给了我很多帮助。另一种方法是根据jqgrid中的jsonreader使用硬编码的json值并看看它是否得到填充。对this example by Oleg
尝试看看其写入PrintWriter的,看看天气,您可以通过此网址调用它获得JSON输出
答
在控制器,你可以尝试将列表转换为Json.That的Json值会直接绑定到jqGrid的,如果所有的列名相匹配
控制器类
@RequestMapping("/page4.htm")
public @ResponseBody String getJQGridData(HttpServletRequest request, HttpServletResponse response) {
System.out.println("xml data");
List<TaskBean> taskList = new ArrayList<TaskBean>();
taskList.add(new TaskBean("Task1", "K-CY-329", "144", "G-3", "1", "Pending", "XYZ"));
taskList.add(new TaskBean("Task2", "K-CY-356", "165", "A-10", "4", "Closed", "ABC"));
taskList.add(new TaskBean("Task3", "K-CY-343", "768", "B-12", "3", "Pending", "IJK"));
taskList.add(new TaskBean("Task4", "K-CY-786", "918", "F-9", "2", "Open", "PQR"));
TaskBeanList tsklst = new TaskBeanList("1", "5", "20", taskList);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String result = gson.toJson(tsklst);
return result;
}
下载gson.jar然后试试这个
它的工作了me.You也可以从这里
感谢克里斯参考样本项目,我已经在使用杰克逊插件Java对象转换成JSON结下不解之缘。如果我将\t 包含到我的dispatcher-servlet.xml中,我得到了saxparser异常。我已将Jackson jar保存在我的classpath中。谁能帮我? –
Sabarish
2011-03-22 11:23:46