首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Struts 2 JSON JQuery网格不按操作

Struts 2 JSON JQuery网格不按操作
EN

Stack Overflow用户
提问于 2014-03-12 10:15:50
回答 1查看 925关注 0票数 0

我目前有一个表,我正试图将其转换为jqGrid。我无法获得获得JSON结果的控制器操作的请求。

这里是我的相关Maven配置:

代码语言:javascript
复制
<!-- Struts2 Libraries -->
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.2.1</version>
</dependency>
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-json-plugin</artifactId>
    <version>2.2.1</version>
</dependency>
        <dependency>
    <groupId>com.jgeppert.struts2.jquery</groupId>
    <artifactId>struts2-jquery-plugin</artifactId>
    <version>3.3.3</version>
</dependency>
<dependency>
    <groupId>com.jgeppert.struts2.jquery</groupId>
    <artifactId>struts2-jquery-grid-plugin</artifactId>
    <version>3.1.0</version>
</dependency>

这是我的struts.xml configuration:

代码语言:javascript
复制
<package name="opd" extends="struts-default,json-default" namespace="/">
        
    <!-- ============================================== -->
    <!-- Result Types -->
    <!-- ============================================== -->
    <result-types>
        <result-type name="tiles"   class="org.apache.struts2.views.tiles.TilesResult" />
        <result-type name="json" class="org.apache.struts2.json.JSONResult" />          
    </result-types>

    <!-- ============================================== -->
    <!-- Interceptors -->
    <!-- ============================================== -->
    <interceptors>
        <interceptor name="appInterceptor" class="com.OrthoPatientDirect.OPDWeb.interceptor.ApplicationInterceptor" />
....
        <interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/>          
    </interceptors>
....
<package name="admin" namespace="/admin" extends="opd">
    <!-- ============================================== -->
    <!-- Admin Manage Patient                           -->
    <!-- ============================================== -->
    
    <action name="patients_*" class="com.OrthoPatientDirect.OPDWeb.action.ManagePatientAction" method="{1}">
    
            <result name="listHome"   type="tiles">admin.managePatientList</result>
            <result name="listByProcedure"  type="tiles">admin.managePatientList.Procedure</result>             
            <result name="update" type="tiles">admin.managePatientList</result> 
            <result name="deletePatient" type="tiles">admin.managePatientList</result>  
            <result name="getJsonData" type="json" />   
            <interceptor-ref name="appInterceptor"/>
        <interceptor-ref name="paramsPrepareParamsStack" /> 
        <interceptor-ref name="json"  />                                                                        
    </action>   

....

这是我的控制器和行动。我忽略了其他特定于jQuery的属性。我没有使用注释。还有从填充数据的选项卡调用的其他操作。

代码语言:javascript
复制
public String getJSON()
{
    return getJsonData();
}


public String getJsonData()
{
    //Count Rows 
    records = getPatientList().size();
       
    //calculate the total pages for the query
    total = records;
    
    return "getJsonData";
    
}

这是我与jqGrid:相关的观点

代码语言:javascript
复制
<%@taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags"%>

<sj:head jqueryui="true"/>

<s:url var="remoteurl" action="patients_getJsonData"/>

<sjg:grid
        id="gridtable"
        caption="View Patients"
        dataType="json"
        href="%{remoteurl}"
        pager="true"
        gridModel="patientList"
        rowList="10,15,20"
        rowNum="15"
        rownumbers="true"
>
       
    <sjg:gridColumn name="email" index="email" title="Email" sortable="true"/>
       
</sjg:grid>

我愿意接受任何建议。没有不好的答案。我知道还有其他与此相关的问题,但我只发现了那些使用注释或没有任何答案的问题。这可能/可能不是版本问题。前几天我试着升级,但与其他库发生了冲突。

EN

回答 1

Stack Overflow用户

发布于 2014-03-12 10:45:45

许多与sjg相关的错误是由于错误地映射了用于返回由插件公开的Struts2 jQuery网格可用的JSON结果的操作。因此,要修复错误,应该正确地将url映射到操作。例如

代码语言:javascript
复制
<s:url var="remoteurl" namespace="/admin" action="patients_getJsonData"/>
<sjg:grid
    id="gridtable"
    caption="View Patients"
    dataType="json"
    href="%{#remoteurl}"
    pager="true"
    gridModel="patientList"
    rowList="10,15,20"
    rowNum="15"
    rownumbers="true">
    <sjg:gridColumn name="email" index="email" title="Email" sortable="true"/>
</sjg:grid>

从上下文中获取变量,不要遍历值堆栈。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22348256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档