![](/img/trans.png)
[英]how to return the multiple lists from controller action to ajax success call back function
[英]How to return a List from controller to Ajax call and print it in the success?
这是我从 rest controller 打印出我的列表值时得到的 object 的模式。
[
{
"name": "Jon",
"isUser": true
},
{
"name": "Ween",
"isUser": false
}
]
但问题是我不知道如何将这个值传递给我的 ajax 调用。 我需要这些价值观来做进一步的工作。 但是每当我调用这个 controller 我的ajax
时返回error 500
。 这是我的 rest controller:
@RequestMapping(value = "/getusers", method = RequestMethod.GET)
public List userShow(HttpServletRequest request, Model model) {
List userlist = new ArrayList();
try{
userlist = JSONArray.fromObject(userService.getUserList());
System.out.println(userlist);
}catch (Exception e){
logger.error(e);
}
return userlist;
}
我可以从system.out
清楚地看到打印的userList
的列表,但我不确定为什么这些值不在ajax call
中。 也许我必须更改我的 function 的return
值,我已经给出了list
,因为我希望我的数据作为我在问题第一部分中给出的数据。 和我的 ajax 通话:
$.ajax({
type: "GET",
url: "/getusers",
success: function (response) {
console.log(response);
if(response === true) {
user = true;
}
else{
user = false;
errorShow = "error getting values";
}
},
async: false
});
当这个 url 命中时,在controller
中可以看到值,但在console.log
中我看到了
错误。 如何在响应部分获取这些值?
我认为您在 class 级别使用 @Controller 注释。 如果您使用@RestController,则不必显式编写@Responsebody。
此外,您可以使用新的方法注释来代替 @RequestMapping(value = "/getusers", method = RequestMethod.GET) 。 @GetMapping("/getusers")
如果你真的想返回列表,你可以像这样使用 ResponseEntity:
@RequestMapping(value = "/getusers", method = RequestMethod.GET)
public ResponseEntity <List> userShow(HttpServletRequest request, Model model) {
List userlist = new ArrayList();
try {
userlist = userService.getUserList();
System.out.println(a);
} catch (Exception e) {
logger.error(e);
}
URI uri = ServletUriComponentsBuilder.fromCurrentRequest().path("/").buildAndExpand("").toUri();
return ResponseEntity.created(uri).body(userlist);
}
请注意,我删除了JSONArray.fromObject()
因为ResposneEntity
将为您将 List 转换为 JSON。 此外,最好指定 List 类型,例如: List<User>
只需在方法级别使用@Responsebody
注释,您就不必再将列表转换为数组。 直接返回列表。
改变
JSONArray.fromObject(userService.getUserList())
至
userService.getUserList()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.