将ExtJS与Grails集成时没有输出

将ExtJS与Grails集成时没有输出,grails,extjs,Grails,Extjs,我正在将extJS与Grails集成 下面是我在music.TuneController中的列表操作 def list = { def tuneInstanceList = new ArrayList<Tune>() def tune= new Tune(); tune.playerId = "ASDF"; tune.playerPrice= "100"; tuneInstanceList.add(tune);

我正在将extJS与Grails集成

下面是我在music.TuneController中的列表操作

def list = {
    def tuneInstanceList = new ArrayList<Tune>()
    def tune= new Tune();
    tune.playerId = "ASDF";
    tune.playerPrice= "100";
    tuneInstanceList.add(tune);                     
    def listResult = [ total: tuneInstanceList.size(), items: tuneInstanceList]
    render listResult as JSON           
} 
list.gsp:

<%@ page import="music.Tune"%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <meta name="layout" content="test" />
        <g:set var="entityName" value="${message(code: 'song.label', default: 'Song')}" />
        <title><g:message code="default.list.label" args="[entityName]" /></title>
           <g:javascript library="tune-grid"/>
    </head>
    <body>

        <div class="body">
        <!--<g:javascript library="examples"/>-->
        <!-- EXAMPLES -->

         <div id="grid-example"></div>


        </div>

    </body>
</html>
你能告诉我我做错了什么吗


谢谢

好的,我已经准备好了你的代码,但是有几个问题:

您需要一个操作来呈现GSP,另一个操作来呈现JSON

  def list = {

  }

  def listData = {
    def tuneInstanceList = new ArrayList<Tune>()
    def tune = new Tune();
    tune.playerId = "ASDF";
    tune.playerPrice = "100";
    tuneInstanceList.add(tune);
    def listResult = [total: tuneInstanceList.size(), items: tuneInstanceList]
    render listResult as JSON
  }
最后,我必须将ExtJS文件和资源放在正确的位置,并将它们包括在内:

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>      
  <g:javascript src="adapter/ext/ext-base.js"/>
  <g:javascript src="ext-all.js"/>
  <g:javascript src="test-grid.js"/>
  <link rel="stylesheet" type="text/css" href="../resources/css/ext-all.css" />
</head>

干杯


Lee

好的,我已经准备好了你的代码,但是有几个问题:

您需要一个操作来呈现GSP,另一个操作来呈现JSON

  def list = {

  }

  def listData = {
    def tuneInstanceList = new ArrayList<Tune>()
    def tune = new Tune();
    tune.playerId = "ASDF";
    tune.playerPrice = "100";
    tuneInstanceList.add(tune);
    def listResult = [total: tuneInstanceList.size(), items: tuneInstanceList]
    render listResult as JSON
  }
最后,我必须将ExtJS文件和资源放在正确的位置,并将它们包括在内:

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>      
  <g:javascript src="adapter/ext/ext-base.js"/>
  <g:javascript src="ext-all.js"/>
  <g:javascript src="test-grid.js"/>
  <link rel="stylesheet" type="text/css" href="../resources/css/ext-all.css" />
</head>

干杯


Lee

纠正了这一点……愚蠢的我……也编辑了qn。。。Bt我仍然在同一个地方…想法?我在我的listData中做的另一个技术。到下面的代码,以便我可以查询数据库。def listData={def session=sessionFactory.getCurrentSession()def result=session.createSQLQuery(“从w.music中选择播放器id,其中播放器id=('530AS')”))。list();def tuneInstanceList=new ArrayList()结果。每个{def tune=new tune()tune.playerId=it(0)tune.playerPrice=“100”tuneInstanceList.add(tune)}def listResult=[total:tunInstanceList.size(),items:tunInstanceList]将listResult呈现为JSON;}这里我得到的网格显示值为5(而不是530AS),playerId和playerPrice的值为100。如果在我的listData中我将tune.playerId=it(1),那么我将得到3(而不是530AS)的显示,playerId和playerPrice分别为100。你能告诉我我错过了什么吗?谢谢你为什么使用原始SQL而不是Gorm?findByPlaerId(“530AS”)将返回一个Tune对象列表,您可以直接传递给gridCorrected…愚蠢的我…也编辑了qn。。。Bt我仍然在同一个地方…想法?我在我的listData中做的另一个技术。到下面的代码,以便我可以查询数据库。def listData={def session=sessionFactory.getCurrentSession()def result=session.createSQLQuery(“从w.music中选择播放器id,其中播放器id=('530AS')”))。list();def tuneInstanceList=new ArrayList()结果。每个{def tune=new tune()tune.playerId=it(0)tune.playerPrice=“100”tuneInstanceList.add(tune)}def listResult=[total:tunInstanceList.size(),items:tunInstanceList]将listResult呈现为JSON;}这里我得到的网格显示值为5(而不是530AS),playerId和playerPrice的值为100。如果在我的listData中我将tune.playerId=it(1),那么我将得到3(而不是530AS)的显示,playerId和playerPrice分别为100。你能告诉我我错过了什么吗?谢谢你为什么使用原始SQL而不是Gorm?findByPlaerId(“530AS”)将返回一个可以直接传递到网格的调优对象列表
var cm = new Ext.grid.ColumnModel([
        {header: "Player Id", width: 120, dataIndex: 'playerId' },
        {header: "Player Price", width: 180, dataIndex: 'playerPrice'}
    ]);
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>      
  <g:javascript src="adapter/ext/ext-base.js"/>
  <g:javascript src="ext-all.js"/>
  <g:javascript src="test-grid.js"/>
  <link rel="stylesheet" type="text/css" href="../resources/css/ext-all.css" />
</head>