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 响应正文返回。

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(         //添加新元素(具体内容不重要)
								" "		
						        +""+item.id +"  "
						        +"    "
						        +" "+item.name+""
						        +" "+item.price+" "
						        +"  "+item.details+" }  "
						        +""+item.repertory+""
						        +" "+item.saled+""
						        +""+item.littleClassify.name+"通过"
						        +"已启用   "
						        +" "
						      	+" "
						        +" "
						      	+"    "
						)
				});
				}
			})

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

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

以上仅是我本人对学习过程中遇到的问题的解决方法,如存在误解,或是错误,烦请指正。

你可能感兴趣的:(json)