javascript - 使用spring控制器将数组列表传回struts jsp?
问题描述
处理两个项目,一个基于 struts,一个基于 spring。我需要能够进行 ajax 调用以带回对象列表,以便我可以在 struts 项目的 html 中显示它们。目前,对控制器的 ajax 调用工作正常,但我在传回数组列表时遇到了麻烦。有什么建议么?
javascript
$.ajax({
url: 'sampleUrl.com/controller/call',
success: function(data) {
//handle returned object
}
}
控制器方法
@RequestMapping(value = 'call', method = RequestMethod.Get)
public @ResponseBody List<SampleObject> getSampleObjects(HttpServletRequest request) {
List<SampleObject> sampleList = new ArrayList<SampleObject>();
sampleList.add(new SampleObject());
return sampleList;
}
解决方案
在控制器中,我必须将 products="application/json" 添加到 @RequestMapping 并在返回之前创建一个新的 Gson 并返回列表的 gson.ToJson() 。在我的 jsp 文件中,一旦通过将 dataType: 'json' 添加到 ajax 调用返回 JSON,我就能够正常循环遍历列表。
javascript
$.ajax({
url: 'sampleUrl.com/controller/call',
dataType: 'json',
success: function(data) {
for(var i = 0; i < data.length; i++) {
console.log(data[i]);
}
}
}
控制器:
@RequestMapping(value = 'call', method = RequestMethod.Get, produces="application/json")
public @ResponseBody String getSampleObjects(HttpServletRequest request)
{
List<SampleObject> sampleList = new ArrayList<SampleObject>();
sampleList.add(new SampleObject());
Gson gson = new Gson();
return gson.toJson(sampleList);
}
推荐阅读
- office-ui-fabric - 我可以使用 Fluent UI 创建与任何 Microsoft 应用程序无关的网站吗?
- php - 到底是怎么回事?我从未见过这样的 PHP 语法:${"\x47\x4c\x4fB\x41\x4c\x53"}['v9800']
- python - 从文件列和行标题创建嵌套字典
- javascript - 在处理未安装组件的清理时,这些解决方案之间有什么区别?useRef 与布尔变量
- sql - SQL。通过历史性的第一个周来获取用户名收入
- git - 使用core.autocrlf = true时文件的'git hash-object'结果不同?
- ios - Decodebase64 initWithBase64EncodedString 返回 nil
- javascript - Javascript RegExp 在具有嵌套子字符串的字符串上应用跨度标签
- reactjs - PrimeReact 数据表 - 如何在单元格上显示工具提示或标题?
- python - Azure 函数 - Python - Visual Studio 代码