【问题标题】:Spring MVC - AJAX/JSON - ResponseBody -> calling a serviceSpring MVC - AJAX/JSON - ResponseBody -> 调用服务
【发布时间】:2011-05-21 13:20:43
【问题描述】:

我正在使用 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>

有什么建议吗?

在此先感谢您并致以最诚挚的问候。

【问题讨论】:

    标签: java ajax json spring spring-mvc


    【解决方案1】:

    在你的方法中 Person 是错误的,它应该是 Set

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

    还有一点就是你不能直接调用接口方法,首先你需要在实现类中实现那个方法。

    IPersonService.getAllPersons()这句话是错误的,这里编译器认为它是IPersonService类的静态方法getAllPersons()

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

    }

    【讨论】:

    • 我更改了它,但服务调用又出现一个错误:无法从 IPersonService 类型对非静态方法 getAllPersons() 进行静态引用。服务方法已经实现,我已经将它与 Adob​​e Flex 前端和 BlazeDS 一起使用。但我没有让它在我的 Java 后端运行。 (公共类 PersonServiceImpl 实现 IPersonService ...它存在...)
    • 谢谢,现在我收到错误消息:IPersonServiceImpl 无法解析为类型。接口的结构和实现是对的(和你写的一样)。
    • 抱歉,调用实现工作。但是调用实现而不调用服务不是错误的吗?
    猜你喜欢
    • 2017-05-25
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多