J'essaie d'intégrer mon application Grails avec extJS. Voici le code dans mon fichier edit.gsp.Comment faire pour mentionner l'action dans httpProxy url lorsque vous utilisez extJS avec Grails
<% @ Page import =% "de 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>
Mon action du contrôleur:
def list = { }
def listData = {def session = sessionFactory.getCurrentSession() def résultat = session.createSQLQuery ("sélectionnez player_id de w.music où player_id = ('530AS')"). List(); def tuneInstanceList = new ArrayList() result.each {def = new air Tune() tune.playerId = il tune.playerPrice = "100" tuneInstanceList.add (air)} def = listResult [total: tunInstanceList.size(), éléments: tunInstanceList] render listResult as JSON; }
Le code ci-dessus fonctionne pour moi.
Cependant, cela fonctionne dans mon environnement de développement. Si je cours cela dans un autre env, cela ne fonctionne pas à cause de l'URL que j'ai codé en dur ici: 'http: // localhost: 8080/tune/music/listData'.
L'une des options est d'utiliser gsparse. Cependant, je voudrais mentionner un urlPath relatif ici si c'est possible. Que dois-je remplacer mon urlPath pour que la bonne action soit appelée même dans d'autres environnements.
Merci!