我想将struts2动作类的数据显示到JQuery Grid中。但是当我试图做到这一点,我也不让网格,它只是显示了JSON字符串作为输出,如下图所示,尝试了所有张贴在这里其他的答案,但没有运气.. :(Struts 2 JQuery Grid没有显示出来
{
"dummyData": [
{
"email": "ABC",
"name": "DEF"
}
],
"page": null,
"records": 1,
"resDetailObj": {
"email": "ABC",
"name": "DEF"
},
"rows": 0,
"searchField": null,
"searchOper": null,
"searchString": null,
"sidx": null,
"sord": null,
"total": 2147483647
}
我使用的struts2-jQuery的网格插件-3.5.1.jar,Struts2的,jQuery的插件-3.2.1.jar和struts2的-JSON-插件-2.1.8.jar
我的JSP
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org /TR/html4/loose.dtd">
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
<html>
<h1>In JQueryGrid</h1>
<head>
<sj:head jqueryui="true" jquerytheme="redmond"/>
</head>
<body>
<s:url var="remoteurl" action="grid"/>
<sjg:grid
id="mygrid"
caption="My Details"
dataType="json"
href="%{remoteurl}"
pager="true"
gridModel="dummyData"
>
<sjg:gridColumn name="name" index="name" title="Name"
sortable="true"/>
<sjg:gridColumn name="email" index="email" title="Email"
sortable="true"/>
</sjg:grid>
</body>
</html>
和我的struts.xml文件是
<package name="JQueryGrid" namespace="/" extends="struts-default">
<action name="grid class="com.digi.crystal.resourceutilization.actions.GridAction">
<result name="success" type="json">
/JqueryGrid.jsp
</result>
</action>
</package>
,最后我的Action类是
public class GridAction extends ActionSupport
{
private List<CResourceDetails> dummyData;
private Integer rows=0;
private Integer page;
private String sord;
private String sidx;
private String searchField;
private String searchString;
private String searchOper;
private Integer total;
private Integer records;
private CResourceDetails resDetailObj = new CResourceDetails();
public GridAction()
{
}
public String execute()
{
List<CResourceDetails> temp = new ArrayList<CResourceDetails>();
resDetailObj.setEmail("ABC");
resDetailObj.setName("DEF");
temp.add(resDetailObj);
setDummyData(temp);
System.out.println("The temp is:"+"in execute"+dummyData.size()+","+rows);
setRecords(temp.size());
total =(int) Math.ceil((double)records/(double)rows);
System.out.println("the total is:"+total/1000000000);
return Action.SUCCESS;
}
// getters and setters of attributes
这里CResourceDetails不过是一个普通的POJO,用姓名和电子邮件。
如果任何人都可以用这个网格来帮助我,那对我来说会很有帮助。
非常感谢提前,
CSSiddartha
非常感谢答复,但如果我尝试,做它就像你说的那样,我只是得到了H1标签,甚至没有显示空网格。:( – Siddarth 2013-04-04 11:53:21
你必须在你的struts.xml中定义结果类型JSON。在动作定义中,不需要JSP 。在JSP中,我相信正确的url定义是:
– Joan 2013-04-04 12:42:04再次感谢您抽出时间帮助我,但即使我做我得到的东西没有变化.. :( – Siddarth 2013-04-05 03:26:16