Struts 2 JQuery Grid не отображается

Я пытаюсь показать данные из класса действий struts2 в JQuery Grid. но когда я пытаюсь добиться этого, я даже не получаю сетку, она просто показывает строку JSON в качестве вывода, как показано ниже, пробовал все другие ответы, размещенные здесь, но не повезло.. :(

{

"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-grid-plugin-3.5.1.jar, struts2-jquery-plugin-3.2.1.jar и struts2-json-plugin-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>

и, наконец, мой класс действий

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 с именем и адресом электронной почты.

Если бы кто-нибудь мог помочь мне с этой сеткой, это было бы для меня большим одолжением.

Заранее большое спасибо,

К.С.Сиддарта


person Siddarth    schedule 04.04.2013    source источник


Ответы (2)


Я думаю, вы обращаетесь непосредственно к сетке действий:

http://localhost:8080/JQueryGrid/grid.action

Попробуйте получить доступ к jsp:

http://localhost:8080/JQueryGrid/JqueryGrid.jsp

Затем сетка вызовет действие и получит результат.

person Joan    schedule 04.04.2013
comment
Большое спасибо за ответ, но если я попытаюсь сделать это так, как вы сказали, я просто получу тег H1, и даже не будет отображаться пустая сетка.. :( - person Siddarth; 04.04.2013
comment
Вы должны определить тип результата JSON в файле struts.xml. В определении действия JSP не требуется. И я считаю, что в JSP правильное определение URL-адреса: ‹s:url var=remoteurl action=grid.action/› - person Joan; 04.04.2013
comment
Еще раз большое спасибо, что уделили мне время, помогая мне, но даже если я это сделаю, ничего не изменится в том, что я получаю.. :( - person Siddarth; 05.04.2013
comment
Действие выполнено? Можно ли увидеть system.out в консоли? - person Joan; 05.04.2013
comment
Да, я вижу system.out в консоли... :( - person Siddarth; 05.04.2013
comment
Я проверяю пример: ссылка Чтобы включить результаты JSON, вы должны расширьте свой пакет в struts.xml из json-default: ‹package name=showcase extends=struts-default,json-default namespace=/› - person Joan; 05.04.2013
comment
большое спасибо за ответ, я даже пробовал это, но не повезло - person Siddarth; 05.04.2013

Сиддарт сначала напишет действие в struts с отображением результатов только на страницу JSP, содержащую сетку, а затем напишет действие для сетки только с json.

<package name="JQueryGrid" namespace="/" extends="struts-default,json-default">
 <action name="opengridJSP" class="com.digi.crystal.resourceutilization.actions.GridAction" method ="SomeMethod">
    <result name="success">/JqueryGrid.jsp</result>
</action>

<action name="grid class="com.digi.crystal.resourceutilization.actions.GridAction">
    <result name="success" type="json"/>
</action>
</package>
person Manjunath    schedule 19.07.2013