Uncaught TypeError: Cannot create property ‘LAY_TABLE_INDEX‘ on number ‘2

在使用layui框架的table组件时,若后台仅返回单个User对象,会导致前端报错。本文介绍如何通过将单个User对象封装到List中解决此问题,确保数据正确加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 问题背景

后台:SSM框架
前端:layui框架

描述:一个商城,登录普通用户,进入后台管理,查看当前用户的一些信息和操作。(因为当前登录的是普通用户,所以只能看到自己的信息,不能看到别人的信息)

二. 报错原因

layui的table组件接收的数据格式如下:

data:[{},{},....]

它是一个数组,每一个元素都是User类型的对象。所以如果后台的controller方法只返回一个user对象作为data,是会报错table.js?v=1585550979763:2 Uncaught TypeError: Cannot create property 'LAY_TABLE_INDEX' on number '2

三. 解决方案

最最最最关键的就是把user实例对象放进一个List里面,再赋给data作为返回数据的接口,如下:

@ResponseBody
	@RequestMapping(value="/getPage2",method=RequestMethod.GET)
	public Map<String, Object> getPage2(HttpServletRequest request){
		Map<String, Object> map = new HashMap<String, Object>();
		HttpSession session = request.getSession();
		User user = (User) session.getAttribute("user");
		List<User> list = new ArrayList<User>();
		list.add(user);//关键
		map.put("code", 0);
		map.put("msg", "操作成功");
		map.put("count", list.size());
		map.put("data", list);
		return map;
	}

解释: List<User> list = new ArrayList<User>(); list.add(user);//关键这里很关键

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值