2011-08-19 5 views
0

J'ai configuré ext direct pour mon application Spring MVC en utilisant extdirectspring. Je suis capable de récupérer des primitives et des cordes et de les utiliser dans ext.js. Lorsque j'essaie de récupérer une liste d'objets, je suis "non défini" du côté javascript. Y at-il quelque chose de spécial que je dois faire à la classe Personne pour le faire fonctionner?Les méthodes extdirectspring ne fonctionnent pas

J'annotées le code suivant:

@ExtDirectMethod(ExtDirectMethodType.STORE_READ) 
@Override 
public Collection<Person> getPeople(String groupId) { 

    Group group = GroupManager.getGroup(groupId); 
    return group.getPeopleList(); 
} 

C'est ce que j'utilise sur le côté client:

directory.getPeople(id, function(result) { 
    console.log(result); 
}); 

Voici ce que app.js ressemble à:

Ext.ns('Ext.app'); 
Ext.app.REMOTING_API = { 
    "actions":{ 
     "directory":[{ 
      "name":"getID","len":0 
     },{ 
      "name":"getPeople","len":1 
     } 
    ]}‌​, 
    "type":"remoting", 
    "url":"/test/action/router" 
}; 
+0

Je dois voir le code HTML et js. Je dois faire un lien vers le js généré automatiquement sur le printemps. – chrislovecnm

+0

Voici l'app.js: 'Ext.ns ('Ext.app'); Ext.app.REMOTING_API = {" actions ": {" directory ": [{" name ":" getID "," len ": 0}, {"name": "getPeople", "len": 1}]}, "type": "remoting", "url": "/ test/action/routeur"}; ' –

+0

Comme je l'ai mentionné j'ai besoin voir le html et le js – chrislovecnm

Répondre

1

Avez-vous essayé d'utiliser la classe ExtDirectStoreResponse? Il utilise une collection mais gère également certaines valeurs utiles pour l'utilisation dans le magasin.

@ExtDirectMethod(ExtDirectMethodType.STORE_READ) 
public ExtDirectStoreResponse<Person> load() 
{ 
    Group group = GroupManager.getGroup(groupId); 
    Collection<Person> people = group.getPeopleList(); 

    return new ExtDirectStoreResponse<Person>(people.size(), people); 
} 

Ceci est l'approche à utiliser lors de l'utilisation de STORE_READ. Cette annotation de méthode attend que la requête vienne dans des valeurs correspondantes dans la classe ExtDirectStoreReadRequest. C'est la référence à utiliser lors de la lecture d'un magasin. https://github.com/ralscha/extdirectspring/wiki/Store-Read-Method

En outre, au lieu d'appeler la méthode directement, vous mettre en place un magasin ExtJs et appelez

store.load(); 
Questions connexes