Restful风格的springMVC搭配ajax请求
最近好像很流行Restful,终于弄懂一点眉目。一个小小的ajax请求没反应让我找了半天错误,原来是请求路径写错了。不给提示,坑死哥了。记下来
点击页面按钮,调用以下函数 function ideaStatus(el){ var self=$(el); var status=self.attr('data-status'); var ideaId=self.attr('data-id'); var txt=self.text(); var txtStatus = self.text(); $('#status-confirm p').text('确定 '+txt+'?'); status=status==1?0:1; $('#status-confirm').dialog({ title:'提示信息', autoOpen: true, height: 'auto', width: 300, modal: true, buttons: { "确定": function(){ $.post('admin/idea/check/lock',{ ideaId:ideaId,status:status },function(data){ $('#status-confirm').dialog("close"); if(data=='success'){ self.attr('data-status',status); txt=status==1?'锁定':'解锁'; self.text(txt); $('.app-list').appTip(txtStatus+' 成功'); }else{ alert('操作失败,请联系系统维护人员'); } },"text"); }, '取消': function(){ $(this).dialog("close"); } } }); }
@ResponseBody @RequestMapping(value="/check/{operation}",method=RequestMethod.POST) public String ideaCheck(@PathVariable("operation")String operation, @ModelAttribute("idea") Idea idea){ Map<String,Object> params = new HashMap<String, Object>(); //传参错误直接返回 if(null != idea && idea.getIdeaId()!=null) { params.put("ideaId", idea.getIdeaId()); if("lock".equals(operation)){ params.put("status", idea.getStatus()); }else if("audit".equals(operation)){ params.put("auditStatus", idea.getAuditStatus()); params.put("score", idea.getScore()); } ideaService.updateIdea(params); } return "success"; } @ResponseBody 代表是ajax请求,有了此标签就不用像struts2中那样写print.out了,前台还可以指定输出的格式,这里是text,说明是个字符串 @RequestMapping(value="/check/{operation}" 这就是restful风格的写法了,用唯一的url响应一个请求,不用带参数的方式 method=RequestMethod.POST 代表是update操作 (@PathVariable("operation")与requestMapping中的内容一致 @ModelAttribute("idea") Idea idea 实体对象当做一个参数传过来了。注意jsp中的值名称必须和实体对象一致哦
PS:如果返回json格式的数据,一定要加几个包,否则不会调用回调函数
jackson-annotations-2.2.3.jar
jackson-core-2.2.3.jar
jackson-databind-2.2.3.jar
controller的返回值需要改为Object的
@ResponseBody
@RequestMapping(value="/support",method=RequestMethod.POST)
publicObjectsupport(@ModelAttribute("idea")Ideaidea,HttpServletRequestreq
jsp的
<a href="javascript:;" onclick="ideaStatus(this);" class="decr app-status" data-status="${i.status}" data-id="${i.ideaId}"> <c:if test="${i.status=='1'}">锁定</c:if> <c:if test="${i.status=='0'}">解锁</c:if> </a> </p>
相关推荐
kentrl 2020-11-10
结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo
ajaxyan 2020-11-09
zndy0 2020-11-03
学留痕 2020-09-20
Richardxx 2020-11-09
learningever 2020-09-19
chongxiaocheng 2020-08-16
ajaxhe 2020-08-16
lyqdanang 2020-08-16
curiousL 2020-08-03
TONIYH 2020-07-22
时光如瑾雨微凉 2020-07-19
83510998 2020-07-18
坚持着执着 2020-07-16
jiaguoquan00 2020-07-07
李永毅 2020-07-05
坚持着执着 2020-07-05