Jquery getJSON()没有从Controller获取任何输出

Jquery getJSON() doesn't get any output from Controller

本文关键字:Controller 获取 任何 输出 getJSON Jquery      更新时间:2023-09-26

我试图从控制器获取对象并在JSP中显示。在调试我的控制器时,返回了正确的数据。但是,当我使用firebug调试我的javascript时,流不会进入getJson的函数(数据)。

$.getJSON('/em',{name: name, cv: cv},
    function(data){
       alert("Hello");
       alert(data.name);
});

控制器-

@RequestMapping(value = "/em", method = RequestMethod.GET)
public Employee addEmployee(@RequestParam(value = "name", required = true) String name,    @RequestParam(value = "cv", required = true) String cv,Model model) {
     return addedEm;
}

我得到正确返回的addedEm。不知道这里出了什么问题。有人能帮我一下吗?谢谢。

另外,当我添加@ResponseBody到我的控制器,我得到的响应在firebug:

Apache Tomcat/7.0.12 - Error report - <h1>HTTP Status 500 - </h1><p><b>type</b> Exception report</p><u>The server encountered an internal error () that prevented it from fulfilling this request.</u><b>exception</b> <pre>org.codehaus.jackson.map.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: org.hibernate.collection.PersistentBag[0]-&gt; nz.co.datacom.panelrequests.pd.user.Employee[&quot;user&quot;]-&gt; nz.co.datacom.panelrequests.pd.user.User[&quot;roles&quot;]-&gt; org.hibernate.collection.PersistentBag[0]-&gt; nz.co.datacom.panelrequests.pd.user.Panelist[&quot;employees&quot;]-&gt;*

然后:

org.codehaus.jackson.map.ser.BeanSerializer.serializeFields(BeanSerializer.java:189)
org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:142)
            org.codehaus.jackson.map.ser.ContainerSerializers$CollectionSerializer.serializeContents(ContainerSerializers.java:442)
        org.codehaus.jackson.map.ser.ContainerSerializers$CollectionSerializer.serializeContents(ContainerSerializers.java:383)
        org.codehaus.jackson.map.ser.ContainerSerializers$AsArraySerializer.serialize(ContainerSerializers.java:142)

然后重复,直到firebug的最大限制

发生这种情况是因为您的实体彼此之间有引用。这就产生了无限递归。当jackson去读一个,然后回到另一个,再回到那个,等等。你的雇主有雇员的推荐人,雇员也有雇主的推荐人。OneToMany和ManyToOne

这是一个修复的博客条目。http://vard-lokkur.blogspot.com/2010/10/json-jackson-to-rescue.html

http://wiki.fasterxml.com/JacksonFeatureBiDirReferences

另外,如果你不想包含实体中的某些字段,你也可以使用@JsonIgnore注释来忽略它们。