欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

restful风格的springmvc配搭ajax请求

更新时间: 2014-01-05 01:53:56 责任编辑: Author_N1

 

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中的值名称必须和实体对象一致哦


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>
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:53:56
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/2738/
本文WWW.DOC100.NET DOC100.NET版权所有。