使用jQuery的getJSON方法实现配置信息的状态的异步修改

引言:在以往的程序中,我大多数都是使用的jQuery的post方法来做异步操作,但这次不同以往,需要返回的信息有好几个,不是单一的,所以最终决定使用getJSON方法来实现配置信状态的异步修改。

以下为具体实现的代码:

1、点击超链接,将配置的id与状态值传给要调用的javascript方法updatePzActive,调用Action中的方法实现配置信息状态的异步修改。

<span id="changeActive_${ipJmPz.pzId}"> 
	<c:if
		test="${ipJmPz.active==1&&ipJmPz.valid==1}">
		<a href="javascript:updatePzActive('${ipJmPz.pzId}','0')">| 停用</a>
		<a href="javascript:updatePzActive('${ipJmPz.pzId}','2')">| 流控停用</a>
	</c:if> <c:if test="${ipJmPz.active==0&&ipJmPz.valid==1}">
		<a href="javascript:updatePzActive('${ipJmPz.pzId}','1')">| 启用</a>
		<a href="javascript:updatePzActive('${ipJmPz.pzId}','2')">| 流控停用</a>
	</c:if> <c:if test="${ipJmPz.active==2&&ipJmPz.valid==1}">
		<a href="javascript:updatePzActive('${ipJmPz.pzId}','1')">| 启用</a>
		<a href="javascript:updatePzActive('${ipJmPz.pzId}','0')">| 停用</a>
	</c:if>
</span>

 

2、javaScript方法updatePzActive:

 

function updatePzActive(id,active) {
   	$.getJSON("<%=path%>/pluginConfig/ipJmPzManage.do?action=updatePzActive",
           {ipJmPzID:id,active:active,time:new Date()}, function(data){
           	if(data!=null&&data!="") {    
		     if(data.result=='success') {			 	 
			 	  var acitveStr = ''; //修改当前状态
			 	  var changeActiveHtmlStr = '';//修改当前操作
			 	  var czsjStr = data.czsj;//修改当前操作时间
			 	  if(active==1) {//说明修改后的状态是启用
			 	  	   acitveStr = '<div align="center"><span class="STYLE1" ><font color="green">启用</font></span></div>';
			 	  	   changeActiveHtmlStr = '<a href="javascript:updatePzActive('+data.ipJmPzID+',0)">| 停用 </a>';
			 	  	   changeActiveHtmlStr+='<a href="javascript:updatePzActive('+data.ipJmPzID+',2)">| 流控停用 </a>';
			 	  }else if(active==0) {
			 	  	   acitveStr = '<div align="center"><span class="STYLE1" ><font color="red">停用</font></span></div>';
			 	  	   changeActiveHtmlStr = '<a href="javascript:updatePzActive('+data.ipJmPzID+',1)">| 启用 </a>';
			 	  	   changeActiveHtmlStr+='<a href="javascript:updatePzActive('+data.ipJmPzID+',2)">| 流控停用 </a>';
			 	  }else{
			 	  		acitveStr = '<div align="center"><span class="STYLE1" ><font color="#0000C6">流控停用</font></span></div>';
			 	  		changeActiveHtmlStr = '<a href="javascript:updatePzActive('+data.ipJmPzID+',1)">| 启用 </a>';
			 	  	    changeActiveHtmlStr += '<a href="javascript:updatePzActive('+data.ipJmPzID+',0)">| 停用 </a>';
			 	  		
			 	  }				 	 
			 	  jQuery("#active_"+data.ipJmPzID).html(acitveStr);
				  jQuery("#changeActive_"+data.ipJmPzID).html(changeActiveHtmlStr);
				  jQuery("#czsj_"+data.ipJmPzID).html(czsjStr);
				  alert("操作成功!");
		     }else if(data.result="overtime"){
		     	  alert("该配置的生效时间已过期,不能启用或流控停用!");
		     }else {
		     	  alert("操作失败!");
		     }
		}
		 
	});	
}

 注:在传参的时候,加上当前时间是为了避免调用缓存。

3、Action中实现状态的修改

public void updatePzActive(){
	String result="";
	String czsjStr="";
	try {
		if (ipJmPzID!=null&&!"".equals(ipJmPzID)) {
			IpJmPz ipJmPz =  (IpJmPz) ipJmPzService.getipJmPzByID(ipJmPzID).get(0);
			//当操作时间不在有效时间范围内,只允许“停用”操作。
			if ((active==1||active==2)&&ipJmPz.getEndTime()!=null&&ipJmPz.getEndTime().before(new Date())) {
					result="overtime";
			}else {
				ipJmPzService.updatePzActive(ipJmPzID,active);
				ipJmPz = this.ipJmPzService.getOneIpJmPzByID(ipJmPzID);
				czsjStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(ipJmPz.getCzsj());
				result="success";
			}
		}else {
			result = "fail";
		}
		String rngStr = JSONObject.fromObject("{result:'"+result+"';ipJmPzID:"+ipJmPzID+";czsj:'"+czsjStr+"'}").toString();
		outJsonString(rngStr);	
			
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		result="fail";
		String proType = "";
		if(ipJmPzIndex.getProType()!=null) {
			proType = String.valueOf(ipJmPzIndex.getProType());
		}
		outHtmlString("<script>alert('操作失败');window.location='ipJmPzManage!execute.do?action=queryIpJmPzInfo&menusID="+this.getMenusID()+"&position="+this.getPosition()+"&pageSize="+pageSize+"&ipJmPzIndex.proType="+proType+"&typeId="+typeId+"';</script>");
	}
		
	String rngStr = JSONObject.fromObject("{result:'"+result+"';ipJmPzID:"+ipJmPzID+";czsj:'"+czsjStr+"'}").toString();
	outJsonString(rngStr);
		
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值