springMVC接受ajax提交表单,json数据的两种方式
作为一个初入互联网行业的小鑫鑫,在使用springMVC时发现一个好耍的东西,决定记下来,免得哪天忘了,哈哈
第一种
序列化表单,将表单数据序列化为json对象字符串
$("#submit").click(function(){varform=$("form").serializeArray();$.ajax({url:"${pageContext.request.contextPath}/teacher/updateTeacher",data:form,type:"POST",dataType:"json",error:function(data){alert("修改成功");location.reload();}});});
对应的springMVC要这样接手数据就可以了
@RequestMapping(value="updateTeacher")@ResponseBodypublicStringupdateTeacher(Teacherteacher,Modelmodel){teacherService.updateByPrimaryKeySelective(teacher);TeacherlonginTeacher=teacherService.loginExp(teacher);model.addAttribute("loginteacher",longinTeacher);return"success";}
第二种
构建json对象
varzdgzs=[];//获取页面所有的数据,组装json对象for(vari=0;i<qtcsId.length;i++){varzdgz={"zdgzNd":zdgzNd,"rwlyValue":rwlyValue,"rwlyName":rwlyName,"lwwh":lwwh,"lwbt":lwbt,"qtcsId":qtcsId.eq(i).val(),"qtcsName":qtcsName.eq(i).html(),"phcsId":[phcsId.eq(i).val()],"phcsName":[phcsName.eq(i).html()],"rwnr":rwnr.eq(i).val()};zdgzs.push(zdgz);}
再次一个zdgz对象的数据就构建好了
ajax传用JSON.stringify(zdgzs)转换下数据,设置传入后台的数据类型为json
$.ajax({type:"POST",url:"${pageContext.request.contextPath}/zdgz/addzdgz.do",contentType:"application/json;charset=utf-8",data:JSON.stringify(zdgzs),dataType:"json",success:function(message){if(message>0){alert("添加成功");window.location.href="${pageContext.request.contextPath}/zdgz1/selectzdgz.do/s/0";}
后台接收方式,使用springMVC中的@requsetBody 注解来控制参数类型,强大的springMVC就能把前台的json数据自动装配成对应对象的List数组了(需要加springMVC中带的json包)
@RequestMapping(value="/addzdgz.do",method=RequestMethod.POST)public@ResponseBodyintaddzdgz(@RequestBodyList<Zdgz>zdgzs){for(Zdgzzdgz:zdgzs){if("请选择".equals(zdgz.getRwlyName())||"请选择".equals(zdgz.getQtcsName())||"请选择".equals(zdgz.getPhcsName())||"".equals(zdgz.getRwnr())||null==zdgz.getRwnr()){return0;}zdgz.setDtmdjsj(newDate());zdgzService.addZdgz(zdgz);}return1;}
ok,这个写完了,以后自己没事可以看看
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。