SSM框架下,jsp页使用ajax时如何使用Controller中返回的list对象(转换成json格式)

SSM框架下,jsp页使用ajax时如何使用Controller中返回的list对象(转换成json格式)

以下代码及解释全是个人对所遇问题的理解和解决方法。因为总是忘记很多知识点,所以索性写一篇文章记下来,方便以后查看。

controller代码:

	@RequestMapping(value = "productsListByLc") // 根据商品分类显示商品列表页
	@ResponseBody
	public List<Product> productsListByLc(String lcName) {

		List<Product> proList = adService.searchProsByLcName(lcName);//该方法根据分类名称查询该分类下商品的所有信息

		return proList;   //直接返回该list

	}

在controller中最重要的一部分就是一定要加上@ResponseBody注解,它会将内容或对象进行合适的格式转换作为 HTTP 响应正文返回。(或者使用@RestController来给类添加注解,效果相同)

jsp页面
使用ajax访问 productListByLc.do,该方法返回类型为list,以下为jsp页面代码

            var url="productsListByLc.do?lcName="+treeNode.name;//这是要访问的路径及携带的参数
			$.ajax({
				url:url,
				type:"post",
				dataType:"json",    //此处注明返回类型为json格式
				success:function(data){
					$("tbody").children().remove();//清除原有的元素
					 $.each(data, function(index, item){//遍历json中每一个单元,随即为“tbody”添加元素
						$("tbody").append(         //添加新元素(具体内容不重要)
								"<tr> <td width='25px'><label><input type='checkbox' class='ace' ><span class='lbl'></span></label></td>"		
						        +"<td width='80px'>"+item.id +"</td>  "
						        +"   <td><img src='../proImage/${imageList[i.index].name }' title='' about='' width='50' height='50'></td> "
						        +" <td width='200px'><u style='cursor:pointer' class='text-primary' οnclick=''>"+item.name+"</u></td>"
						        +" <td width='100px'>"+item.price+"</td> "
						        +"  <td width='250px'>"+item.details+" }</td>  "
						        +"<td width='80px'>"+item.repertory+"</td>"
						        +" <td width='80px'>"+item.saled+"</td>"
						        +"<th width='100px'>"+item.littleClassify.name+"</th><td class='text-l'>通过</td>"
						        +"<td class='td-status'><span class='label label-success radius'>已启用</span></td>   <td class='td-manage'>"
						        +"<a onClick='member_stop(this,'10001')'  href='javascript:;' title='停用'  class='btn btn-xs btn-success'><i class='icon-ok bigger-120'></i></a> "
						      	+"<a title='编辑' class='proModity btn btn-xs btn-info'  data-id='${pro.id }'><i class='icon-edit bigger-120'></i></a> "
						        +" <a title='删除' class='delPro btn btn-xs btn-warning' data-id='${pro.id }'><i class='icon-trash  bigger-120'></i></a>"
						      	+"   </td> </tr>"
						)
				});
				}
			})

该部分主要是对controller返回的list进行处理,将list转化为json,然后进行解析使用。在这个过程中,controller只需要返回list,前台通过ajax获得json数组,$.each(data, function(index, item)方法中 item即为每一次遍历json数组过程中的那一个对象。

例如上面的返回的是一个商品的list,那么每一次遍历,就是拿到这个商品list中的一件商品,该item中就包含了该商品的所有属性

以上仅是我本人对学习过程中遇到的问题的解决方法,如存在误解,或是错误,烦请指正。
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值