Spring MVC - AJAX / JSON - ResponseBody -> вызов службы - PullRequest
2 голосов
/ 07 декабря 2010

Я использую Spring MVC и хочу вызвать AJAX, чтобы получить сообщение JSON с объектами Set of Person. У меня есть этот код JQuery:

$(document).ready(function() {
    getAllPersons();
});
function getAllPersons() {
    $.getJSON("person/allpersons", function(data) {
        alert(data);
    });
}

Персона / allpersons (REST URL) вызывает RequestMapping:

@RequestMapping(value="/allersons", method=RequestMethod.GET)
public @ResponseBody ??? ???() {
    ???
}

У меня есть служба, созданная для получения всех людей:

public interface IPersonService {
    public Person addPerson(Person p);
    ...
    public Set<Person> getAllPersons();
}

Как мне позвонить в эту службу? Так что я должен разместить вместо *

Я пробовал несколько подобных вещей, но я получаю ошибки в Eclipse IDE:

public @ResponseBody <Set>Person getSomething() {
    Set<Person> persons = IPersonService.getAllPersons();
    return persons;
}

Ошибки / Предупреждения:

The type parameter Set is hiding the type Set<E>
Cannot make a static reference to the non-static method getAllPersons() from the type IPersonService
The type Set is not generic; it cannot be parameterized with arguments <Person>

Есть предложения?

Заранее спасибо и наилучшими пожеланиями.

1 Ответ

3 голосов
/ 07 декабря 2010

В вашем методе Person не прав, это должно быть установлено

public @ResponseBody Set<Person> getSomething() {
    Set<Person> persons = new IPersonServiceImpl().getAllPersons();
    return persons;
}

И еще: вы не можете напрямую вызывать интерфейсный метод, сначала вам нужно реализовать этот метод в классе реализации.

IPersonService.getAllPersons() Это утверждение неверно, здесь компилятор рассматривает его как статический метод getAllPersons() класса IPersonService.

public class IPersonServiceImpl implements IPersonService{
    public Set<Person> getAllPersons(){
     -- Your Business Logic
    }
    public Person addPerson(Person p){
     -- Your Business Logic
    }
}

}

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