методы extdirectspring не работают - PullRequest
0 голосов
/ 20 августа 2011

Я установил ext direct для своего приложения Spring MVC, используя extdirectspring . Я могу получить примитивы и строки и использовать их в ext.js. Когда я пытаюсь получить список объектов, я получаю «неопределенный» на стороне JavaScript. Что-нибудь особенное, что мне нужно сделать с классом Person, чтобы заставить его работать?

Я прокомментировал следующий код:

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

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

Это то, что я использую на стороне клиента:

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

Вот как выглядит 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/router"
};

1 Ответ

1 голос
/ 11 сентября 2013

Вы пытались использовать класс ExtDirectStoreResponse? Он использует коллекцию, но также управляет некоторыми полезными значениями для использования в магазине.

@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);
}

Этот подход используется при использовании STORE_READ. В аннотации этого метода ожидается, что запрос будет соответствовать значениям в классе ExtDirectStoreReadRequest. Это ссылка для использования при чтении из магазина. https://github.com/ralscha/extdirectspring/wiki/Store-Read-Method

Кроме того, вместо непосредственного вызова метода вы должны настроить хранилище ExtJs и вызвать

store.load();
...