2011-03-22 93 views
2

我是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示例代码时,看起来很简单,但我没有看到任何输出。输出页面为空。请帮助解决。

感谢

回答

0

我建议你看看下面的教程第一:

的jqGrid和Spring 3 MVC集成教程在http://krams915.blogspot.com/2010/12/jqgrid-and-spring-3-mvc-integration.html

或许可以从该教程中找到答案,或者至少将细化你在找什么。

+0

感谢克里斯参考样本项目,我已经在使用杰克逊插件Java对象转换成JSON结下不解之缘。如果我将\t 包含到我的dispatcher-servlet.xml中,我得到了saxparser异常。我已将Jackson jar保存在我的classpath中。谁能帮我? – Sabarish 2011-03-22 11:23:46

0

@ user669789首先通过克里斯提到的克拉姆斯教程。我也是jqgrid的新手,但是教程和源代码给了我很多帮助。另一种方法是根据jqgrid中的jsonreader使用硬编码的json值并看看它是否得到填充。对this example by Oleg

尝试看看其写入PrintWriter的,看看天气,您可以通过此网址调用它获得JSON输出

0

在控制器,你可以尝试将列表转换为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也可以从这里

http://www.jriyazahamed.blogspot.com/