繁体   English   中英

需要帮助以使Spring 3 / AJAX / JSON下拉列表正常工作

[英]Need help getting this Spring 3/AJAX/JSON drop down population working

我试图做一个Spring MVC 3 ajax调用来填充json序列化数据的下拉列表。

我看到的问题是我不确定列表将返回哪种格式的JSON Spring,以及为什么。

返回Ajax数据的方法如下所示:

@RequestMapping(value="/getMyObjects", method=RequestMethod.POST)
@ResponseBody
public List<MyObject> getMyObjects () {

 List<MyObject> myobjects = // populate list

 return myobjects;

}

据我了解,这应该是我所要做的,对吧?

在我的应用程序日志中,我看到它确实将响应转换为JSON,如下所示:

2012-06-20 11:08:21,125调试(AbstractMessageConverterMethodProcessor.java:139)-编写为[[MyObject [id = 1376,name = Something test],MyObject [id = 1234 name = More test]]]作为“应用程序/ json; charset = UTF-8”,使用[org.springframework.http.converter.json.MappingJacksonHttpMessageConverter@d1b7e5]

但是那个JSON字符串对我来说看起来很奇怪,对吗?

我期待诸如[{id:1376,name =“ Something test”},{id:1234,name =“ More test”}]之类的东西

在客户端,当我收到响应并发出警报时,我看到它说是一个对象数组,如下所示:[对象对象] [对象对象],但我不知道如何处理该数据。

我尝试:alert(data); -给出我上面刚刚描述的输出$(data).each(function(){alert(this.id); // undefined!});

如何使用这种JSON数据,或者如何将其转换为更易于管理的数据?

[编辑]我正在尝试将客户端代码与当前警报响应一起附加:$ .ajax({类型:“ POST”,网址:“ getMyObjects”,成功:function(data){alert(data); // [Object object ] [Object object] alert(data.value); //未定义$(data).each(function(){alert(this.id); //每次迭代未定义});},错误:函数(XMLHttpRequest, textStatus,errorThrown){alert(textStatus);}});

Spring 3提供了与DWR (直接Web远程处理)的集成,这对于AJAX调用来说是非常酷的功能。 在DWR中,您可以像在核心Java中一样轻松地处理列表。

就是这个! 您应该获得预期的json格式。 不再需要任何代码(解析器,格式化)。

您看不到的是返回的实际json。 好了,您可以立即在浏览器中尝试使用url,而无需通过诸如http://yourdomain/yourservlet/getMyObjects类的ajax来调用它,然后您将看到JSON。

否则,将firefox与firebug一起使用,您可以看到自己的ajac调用(请求和响应)

更新

$.ajax({
url: "path/to/your/url",
cache: false,
async: false,
success: function(data){                    
    for (var i = 0; i < data.length; i++) {
        alert(data[i].id);
        alert(data[i].name);
    }
}

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM