我正在使用 Spring MVC,并且想要执行 AJAX 调用来获取包含一组 Person 对象的 JSON 消息。 我有这个 jQuery 代码:
$(document).ready(function() {
getAllPersons();
});
function getAllPersons() {
$.getJSON("person/allpersons", function(data) {
alert(data);
});
}
个人/所有人(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>
有什么建议吗?
预先感谢您并致以最诚挚的问候。
最佳答案
在你的方法 Person 中是错误的,应该设置
public @ResponseBody Set<Person> getSomething() {
Set<Person> persons = new IPersonServiceImpl().getAllPersons();
return persons;
}
另一件事是你不能直接调用接口(interface)方法,首先你需要在实现类中实现该方法。
IPersonService.getAllPersons()
这个说法是错误的,这里编译器认为它是静态方法getAllPersons()
的IPersonService
类。
public class IPersonServiceImpl implements IPersonService{
public Set<Person> getAllPersons(){
-- Your Business Logic
}
public Person addPerson(Person p){
-- Your Business Logic
}
}
}
关于java - Spring MVC - AJAX/JSON - ResponseBody -> 调用服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4376399/