Как упомянуть действие в URL-адресе httpProxy при использовании extJS с Grails - PullRequest
0 голосов
/ 19 октября 2010

Я пытаюсь интегрировать свое приложение Grails с extJS.Ниже приведен код в моем файле edit.gsp.

<% @ page import = "tune.Music"%>

       <script type="text/javascript"> 

       var ds = new Ext.data.Store({
           autoLoad: true,
           proxy: new Ext.data.HttpProxy({
           url: 'http://localhost:8080/tune/music/listData'}),
           reader: new Ext.data.JsonReader({
            results: 'total',
            root:'items',
            id:'id'
           },
           [
                   {name: 'playerId'},
                   {name: 'playerPrice'}

              ]
           )
        });

        var cm = new Ext.grid.ColumnModel([
            {header: "Player Id", width: 70, sortable:true,  dataIndex: 'playerId'},
            {header: "Player Price", width: 90, dataIndex: 'playerPrice'}


        ]);
        //cm.defaultSortable = true;

        // create the grid
        var grid = new Ext.grid.GridPanel({
            ds: ds,
            cm: cm,
            renderTo:'grid-example',
            width:1300,
            height:300
        });
                </script>



</head>
<body>

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



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


    </div>

</body>

Действие моего контроллера:

def list = {}

def listData = {def session = sessionFactory.getCurrentSession () def result = session.createSQLQuery ("выбрать player_id из w.music, где player_id = ('530AS')").список();def tuneInstanceList = new ArrayList () result.each {def tune = new Tune () tune.playerId = it tune.playerPrice = "100" tuneInstanceList.add (tune)} def listResult = [total: tunInstanceList.size (), элементы: tunInstanceList] отображать listResult как JSON;}

Приведенный выше код работает для меня.

Однако, это работает в моей среде разработки.Если я запускаю это в другом env, он не работает из-за URL, который я жестко запрограммировал здесь, а именно: url: 'http://localhost:8080/tune/music/listData'.

Один из вариантов - использовать gsparse.Тем не менее, я хотел бы упомянуть здесь относительный urlPath, если это возможно.Чем я заменяю свой urlPath, чтобы правильное действие вызывалось даже в других средах.

Спасибо!

1 Ответ

1 голос
/ 19 октября 2010

заменил URL HttpProxy как

url: '/ tune / music / listData' и все заработало.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...