AJAX与spring mvc交互
(1)简单交互: <tablestyle="width:100%"class="table"cellspacing="1"cellpadding="1"border="0"> <tr><tdclass="ti1"colSpan="2">请选择审讯室</td></tr> <tr><tdclass="ti2hui">审讯室名称</td><tdclass="ti1cu"> <selectid="roomid"name="roomid"> <c:forEachitems="${roomlist}"var="room"> <optionvalue="${room.id}">${room.name}</option> </c:forEach> </select> </td></tr> <tr><tdclass="ti2hui"colSpan="2"align="center"><inputtype="button"onclick="setshow()"value="确定"/></td></tr> </table> ------------------------------ajax-----提交的参数可以通过url提交,也可以用data:{}方式提交--------------------------------- functionsetshow(){ $.ajax({ type:"POST",url:"<%=request.getContextPath()%>/initroom.do?method=set",data:{ 'room':$("#roomid").find('option:selected').text(),'roomid':$("#roomid").val() },dataType:"json",success:function(data){ if(data.success){ alert("设置成功!"); } else{ alert("设置失败!"); } },error:function(){ alert("网络连接出错!"); } }); } ------------------------spring mvc------------------------------------------------- @RequestMapping(params="method=set") publicvoidjump(HttpSessionsession,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{ Stringroomid=request.getParameter("roomid"); Stringroom=request.getParameter("room"); session.setAttribute("ROOMID",roomid); session.setAttribute("ROOMNAME",room); System.out.println("sessionset:"+room+"=="+roomid); response.setCharacterEncoding("utf-8"); response.getWriter().write("{"success":true}"); response.getWriter().flush(); } (2)springmvc 返回信息到ajax: importcom.googlecode.jsonplugin.JSONUtil; List<Records>recordList=newArrayList<Records>(); //获取recordlist操作省略 response.setCharacterEncoding("utf-8"); response.getWriter().write("{"success":true,"data":"+JSONUtil.serialize(recordList)+"}"); response.getWriter().flush(); -------------------------------ajax处理序列化对象-------------------------------------------- vartext=''; $(data.data).each(function(){ text=text+'<lionclick="selectRecord('+this.id+')"style="cursor:pointer;height:20px;list-style:none;valign:center;line-height:23px;"><divstyle="float:left;width:15px;height:20px;background:url(Images/record_icon.png)no-repeatcenter;"></div>'+this.name+'</li>'; }); $('#recordDiv').html(text); (3)最先进的做法: 在 Spring mvc3中,响应、接受 JSON都十分方便。 <title>SpringMVC</title> <scripttype="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <scripttype="text/javascript"src="http://jquery-json.googlecode.com/files/jquery.json-2.2.min.js"></script> <scripttype="text/javascript"src="<%=request.getContextPath()%>/scripts/user/index.js"></script> </head> <body> <divid="info"></div> <formaction="add"method="post"id="form"> 编号:<inputtype="text"name="id"/> 姓名:<inputtype="text"name="username"/> 年龄:<inputtype="text"name="age"/> <inputtype="button"value="提交"id="submit"/> </form> </body> </html> //将一个表单的数据返回成JSON对象 $.fn.serializeObject=function(){ varo={}; vara=this.serializeArray(); $.each(a,function(){ if(o[this.name]){ if(!o[this.name].push){ o[this.name]=[o[this.name]]; } o[this.name].push(this.value||''); }else{ o[this.name]=this.value||''; } }); returno; }; $(document).ready( function(){ jQuery.ajax({ type:'GET',contentType:'application/json',url:'user/list',dataType:'json',success:function(data){ if(data&&data.success=="true"){ $('#info').html("共"+data.total+"条数据。<br/>"); $.each(data.data,function(i,item){ $('#info').append( "编号:"+item.id+",姓名:"+item.username +",年龄:"+item.age); }); } },error:function(){ alert("error") } }); $("#submit").click(function(){ varjsonuserinfo=$.toJSON($('#form').serializeObject()); alert(jsonuserinfo); jQuery.ajax({ type:'POST',url:'user/add',data:jsonuserinfo,success:function(data){ alert("新增成功!"); },error:function(data){ alert("error") } }); }); }); @Controller @RequestMapping("/user") publicclassDemoController{ privateLoggerlogger=LoggerFactory.getLogger(DemoController.class); @RequestMapping(value="/list",method=RequestMethod.GET) @ResponseBody publicMap<String,Object>getUserList(){ logger.info("列表"); List<UserModel>list=newArrayList<UserModel>(); UserModelum=newUserModel(); um.setId("1"); um.setUsername("sss"); um.setAge(222); list.add(um); Map<String,Object>modelMap=newHashMap<String,Object>(3); modelMap.put("total","1"); modelMap.put("data",list); modelMap.put("success","true"); returnmodelMap; } @RequestMapping(value="/add",method=RequestMethod.POST) @ResponseBody publicMap<String,String>addUser(@RequestBodyUserModelmodel){ logger.info("新增"); logger.info("捕获到前台传递过来的Model,名称为:"+model.getUsername()); Map<String,String>map=newHashMap<String,String>(1); map.put("success","true"); returnmap; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |