在struts2中使用ajax是非常简单的,并且借助ajax就更加简单了,废话不多说,直接上代码吧:
一般我们在操作删除,修改等操作时,一般需要进行两次操作,一次是具体的操作,另一次是页面的加载,一次一般都是要传入两个action的
//删除试题: 批量删除function deleteSub(delTagAction,listTagAction){//得到当前的页码 var currentPage=$("#currentPage").val();//以下是得到选中的复选框 var ids=new Array(); if($("input[name='id']:checked").size()==0){ alert("请选择需要删除的题目!"); return false; } $("input[name='id']:checked").each(function(i,obj){ ids[i]=$(obj).val(); }); var idStr=ids.join("-"); $.ajax({ url:delTagAction, data:{ sendTime:(new Date()).getTime(), idStr:idStr }, type:"post", async:false, dataType:"json", success:function(data){ if(data.success){ $("#middle").load(listTagAction, { sendTime:(new Date()).getTime(), currentPage:currentPage } ) alert("删除成功!!!"); }else{ alert("删除失败,请联系开发人员!!!"); } } });}
页面根据事件来调用该ajax就可以了,传入的两个参数分别是1.删除操作的action 2.操作成功后要加载的页面action
struts.xml:/WEB-INF/admin/加载页面 /WEB-INF/responseMsg.jsp
删除操作的action:(里面的response就是一个字符串,可以更换其他名字)
//删除单选题 public String deleteSing(){ try{ singleSubService.deleteSingleSub(idStr); //删除 response="{success:true}"; }catch(Exception e){ response="{success:false}"; e.printStackTrace(); } return SUCCESS; }
操作成功后会回到struts2.xml中,页面先回到/WEB-INF/responseMsg.jsp,这个jsp只是间接输出消息的
<%@ taglib prefix="s" uri="/struts-tags"%><% response.setCharacterEncoding("UTF-8"); %><% System.out.println(response); %>
另外一种提交方式就是,使用submit提交整个表单(form)使用ajax
表单代码如下:
当前操作:信息管理——>添加学生信息
调用到的js:
function checkAdd(form){ var options = { dataType: 'json', success: inforAddResponse }; $("#inforAddForm").ajaxSubmit(options); return false;}//回调function inforAddResponse(responseText){ alert(responseText.msg);}
后台的操作时一样的