`
jessen163
  • 浏览: 457067 次
  • 性别: Icon_minigender_1
  • 来自: 潘多拉
社区版块
存档分类
最新评论

js获取action的返回值

阅读更多
今天遇到这样一个问题我需要获得一个action执行方法后的一个返回值。

先讲下大概思路,其实很简单,就是用Jquery的$.post来执行ajax


jQuery.post(url,[data],[callback],[type])

url:执行的action的url

[data]:传递过去的参数,假如在表单中,可以使用$("form").serialize()把form中的参数全部提交

[callback]:回调函数,这个用来获取返回值,并把返回值当做参数。例如function(responseText){}

type:可以规定返回的类型,可以返回html,text,xml,json等




我讲一下具体的解决办法,



Action:
public ActionForward doGetEditConsumeCount(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  
  String orgIdStr = request.getParameter("orgId");
  int orgId = Integer.parseInt(orgIdStr);

  
  MasOrgInfo organ = organService.getOrganById(orgId);
  
  
  String consumeType = request.getParameter("consumeType");   //消费类型
  String consumeDateStart = request.getParameter("consumeDateStart"); //消费日期起始
  String consumeDateEnd = request.getParameter("consumeDateEnd");  //消费日期截止

  String prStart = request.getParameter("priceStart");    //实际价格原始价格
  Float priceStart = null;
  if (!prStart.equals("")) {
   priceStart = Float.parseFloat(prStart);
  }

  String prEnd = request.getParameter("priceEnd");     //实际价格新价格
  Float priceEnd = null;
  if (!prEnd.equals("")) {
   priceEnd = Float.parseFloat(prEnd);
  }
  String type = request.getParameter("type");       //专业类型
  String packageName = request.getParameter("packageName");   //专业或包
  String combo = request.getParameter("combo");      //套餐 

  
  Integer comsumeNum=organService.getUpdateConsumeNum(orgId, type, packageName, combo, consumeType, consumeDateStart, consumeDateEnd, priceStart);
  Long peopleNum=organService.getUpdateConsumePeopleNum(orgId, type, packageName, combo, consumeType, consumeDateStart, consumeDateEnd, priceStart);
  
  String strNum="\n 即将修改"+comsumeNum+"条记录,共计"+peopleNum+"个账号";
  response.setContentType("text/xml;charset=utf-8"); //更改字符编码
  response.getWriter().println(strNum);            //这句话是把结果返回(这个是关键)

  return mapping.findForward("");                //这里返回空就好
 }

 

jsp页面的js代码如下:

function update() {
 if($('#type').val()!=null&&$('#type').val){
  $.post("${basepath}/organ.do?o=doGetEditConsumeCount&orgId=${organ.id}&pageNum=1", $("form").serialize(),
//这里的resonseText就是action中的strNum了,这个名字可以随便起的


   function(responseText){        

    var msg = responseText+"\n您真的确定要批量修改吗?\n\n请确认!";
    if (confirm(msg)==true){
     theform.action = "${basepath}/organ.do?o=doEditLotConsumes&orgId=${organ.id}";
     theform.submit();
     return true;
    }else{
     return false;
    }
             }
  , "text");
 }else{
  alert("提示:请将原始价格填入“实际单价起始价格框”,新价格填入“实际单价截止价格框”");
 }
}

 


上面的代码我其实是在回调函数里面又写了一些东西,其实可以简化为这个样子

$.post("${basepath}/organ.do?o=doGetEditConsumeCount&orgId=${organ.id}&pageNum=1", $("form").serialize(),function(responseText){alert(responseText)},"text");
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics