在grails中使用jggrid时,Json的响应并未到来

时间:2012-09-25 22:27:40

标签: grails

我第一次使用带有grails的jqgrid并面临一些问题。我在我的gsp中设置了jggrid,如下所示

<link rel="stylesheet" href="${resource(dir:'css',file:'ui.jqgrid.css')}" />
<link rel="stylesheet" href="${resource(dir:'css/ui-lightness',file:'jquery
ui-1.8.23.custom.css')}" />

<g:javascript library="jquery-1.7.2.min"/>
<g:javascript library="jquery.jqGrid.min"/>
<script type="text/javascript">
        $(document).ready(function() {
            jQuery("#g-grid").jqGrid({
                datatype: "json",
                mtype: 'GET',
                url:  '${createLink(controller: 'roadmap', action: 'listRequestsAsJSON')}',
                colNames: ['Entry Type', 'Life Cycle Status'],
                colModel: [
                            {name:'roadMapEntryTypeCode',index:'roadMapEntryTypeCode', editable:'true'},
                            {name:'lifeCycleStatusCode',index:'lifeCycleStatusCode',editable:'true'}    
                         ],  
                pager: jQuery('#g-pager'), 
                viewrecords: true,
                gridview: true  
                }); 
        });
</script> 

并且控制器中用于获取响应的代码是

def listRequestsAsJSON = {

def r = AssetRoadmap.findAllByAsetIDAndRoadMapEntryTypeCode(Asset.get(10033),      CodeConstants.ROADMAP_ENTRY_TYPE_CODE_LIFECYCLE, [sort:"roadMapEventStartDate", order:"asc"])

    def jsonCells = r.collect {
        [ id: it.id,
                    cell: [
                        it.roadMapEntryTypeCode,
                        it.lifeCycleStatusCode                  
                    ]
                ]

    }


    def jsonData= [rows: jsonCells]
    render jsonData as JSON

}

当我在Firefox中查看响应时(使用Firebugs)我没有看到它作为响应但是当我在浏览器中手动渲染jsp时我得到了

  

{ “行”:[{ “ID”:10172, “细胞”:[ “生命周期”, “消灭”]},{ “ID”:10173, “细胞”:[ “生命周期”, “归档” ]},{“id”:10174,“cell”:[“LIFECYCLE”,“CONTAINMENT”]}}}

在我看来是正确的,所以不确定问题在哪里,任何帮助将不胜感激。谢谢!!!

1 个答案:

答案 0 :(得分:0)

请求实际上是将请求重定向到其他地方,因此json响应没有到来。我得到了302状态的线索,虽然很好学习