spring 3 mvc 返回json实体

最近在做基于spring 3 mvc 框架的项目,发现不用strut2也能做到异步请求然后返回json格式的数据。多说无益,还是贴上代码吧。
这个是control部分的代码
 @RequestMapping("/querynum.do")
	@ResponseBody  //这个表示返回json
	public Map<String,Object> queryCodecreateNum(HttpServletRequest       request,HttpServletResponse response, 
	@RequestParam(value="createnum",required=false) String createnum,
			HttpSession session, Model model) {
		int creatindex=0;
		Map<String,Object> map=new HashMap<String, Object>();
		if(StringUtils.isEmpty(createnum)){
			int[] array=this.wandadao.queryCreateNum();
			if (array!=null && array.length>0) {
				map.put("createnums", array);
				creatindex=array[0];
			}
		}else {
			creatindex=Integer.parseInt(createnum);
		}
		List<CreateNumBean> list=this.wandadao.queryCodeStartEndTime(creatindex);
		map.put("createlist", list);
		
		return map;
	}


前端取值的部分
$("#editbtn").click(function(data){
		$.post("querynum.do",null,function(data){
			var arr=data.createnums; //直接取出数组,object类型
			var num=data.createnums.length;
			if(typeof(data.createnums)!=undefined){
 //用each遍历这个Object,it是数值
				$.each(data.createnums,function(i,it){
					var option="<option value='"+it+"'>"+it+"</option>";
					$("#edit-createnum").append(option);
				});
				var value=$("#edit-createnum").attr('selected', 'selected').val();
 //createlist是一个泛型集合,item代表的是泛型实体对象,可以用item直接点实体的属性取值
				$.each(data.createlist,function(i,item){
					var txt="<li><p>"+item.counts+"个券码,当前生效时间:<input id=\"beign"+i+"\" type=\"text\" style=\"width: 120px;\" value=\""+item.starttime+"\" onfocus=\"showDate(0)\" >"+
					"当前结束时间:<input id=\"end"+i+"\" type=\"text\" style=\"width: 120px;\" value=\""+item.endtime+"\" onfocus=\"showDate('beign"+i+"')\" >"+
					"<input name=\"hidb"+i+"\" type=\"hidden\" value=\""+item.starttime+"\"><input name=\"hide"+i+"\" type=\"hidden\" value=\""+item.endtime+"\">"+
					"<input type=\"button\" value=\"修改\" onclick=\"submitUp('"+i+"','"+value+"')\"></p><li>";
					$("#editcard ul").append(txt);
				});
			}
		},"json");//post最后一个参数一定要用"json",不然对象就取不出来了
		
	});

在前端取值的时候还有一种方式,使用js的for循环,不过对于泛型集合取值时候需要多重循环,没有each好用。

你可能感兴趣的:(Spring 3)