spring mvc ajax 后台向前台返回list
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring mvc ajax 后台向前台返回list相关的知识,希望对你有一定的参考价值。
我在项目里通过ajax请求,后台向前台返回了一个list,接收并成功使用。
但是奇怪的是,我为什么在网上看到好多人都说,前台无法接受list,得用json做交互,
可为什么我就成功返回list并使用了呢?
后台:
@RequestMapping("leftMenu")
@ResponseBody
public List<Resources> getResource()
return dao.getResources();
前台:
$.ajax(
type: "post",
url: "layout/leftMenu.do",
success:function(data)
var list = data;
);
虽然你的方法返回值写的是List类型
但由于Spring MVC中的@ResponseBody注解会自动把返回的数据转换成jackson数据
所以最终在前端得到的是json数据
而不是List类型 参考技术A 你是怎么返回的 贴端代码看看 前端有个datatype:你有事怎么写的追问
我在上面补充了代码部分。
追答@responsebody会自动将你的list转成json。所以你前台接受的我可以确定不是list而是json
ajax异步请求获取后台数据,java mvc 后台应该如何封装各种实体类数据?
比如后台返回一个User对象数组加一个Address对象二维数组
参考技术A 可以使用jsonObject来封装。封装好的格式大概是这样:"Address":["Address1","Address2"],"user":["user1","user2"]追问
这个泛型的实体类怎么写,请求的这个方法怎么写呢
追答在请求的controller上面加上@ResponseBody 就是返回数据 不会返回页面。jsonObject定义:jsonObject result = new jsonObject();
参考技术B 那就新建一个对象,把User和Address都当成属性。public class AjaxResult
private User[] user;
private Affress[] address;
public User[] getUser()
return user;
public void setUser(User[] user)
this.user = user;
public Affress[] getAddress()
return address;
public void setAddress(Affress[] address)
this.address = address;
本回答被提问者采纳
以上是关于spring mvc ajax 后台向前台返回list的主要内容,如果未能解决你的问题,请参考以下文章
Spring MVC 向前台页面传值-ModelAndView