关于MultiActionController异步Ajax,post;

53 篇文章 0 订阅
50 篇文章 0 订阅

一. MultiActionController 的控制类用Ajax,post异步请求,现在提供两个个方法来解决问题:

注意:是返回的json格式必须正确,否则出错!

1.在对应的控制类中写ajax方法

xml配置:

java代码:

public ModelAndView selectUploadPercent(HttpServletRequest request,HttpServletResponse response){
         System.out.println("方法进入controller");
         HttpSession session = request.getSession();
 int percent = session.getAttribute("upload_percent") == null ? 0:                                 Integer.parseInt(session.getAttribute("upload_percent").toString());
         int sum = session.getAttribute("upload_sum") == null ? 0: Integer.parseInt(session.getAttribute("upload_sum").toString());
         int end = session.getAttribute("upload_end") == null ? 0: Integer.parseInt(session.getAttribute("upload_end").toString());
         String jsonStr = "{percent:'+percent+',sum:'+sum+',end:'+end+'}";
         Map<String, Integer> map = new HashMap<String, Integer>();
         try
         {
             map.put("percent",percent);
             map.put("sum",sum);
             map.put("end",end);
             JSONArray json1 = JSONArray.fromObject(map);
             //将json数据返回
             response.getWriter().write(json1.toString());
         }
         catch (Exception e)
         {
             
             e.printStackTrace();
         }
         return null;
     }

js代码:
 

function showPercent() {
    $.ajax( {
        type : "POST",
        url : "intoNetTCSubmit.htm?method=selectUploadPercent",
        dataType : "json",
        success : function(data) {
            console.log(data);
            var end = 0;
            var per = 0;
            end = data[0].end;
            per = data[0].percent ;
},
error : function(data) {
    alert("ajax异常!!!");

}
    });

}

2.首先新建一个servlet类

方案:一般控制类继承MultiActionController异步请求后没法得到回调参数,现在我们重新做一个控制类专门处理异步请求,先新建一个servlet继承HttpServlet这个类,但不要继承MultiActionController;

 

2.1配置web.xml

 2.2 <servlet>标签与<servlet-mapping>标签中的<servlet-name>中的名字需要一致;

2.3 <servlet-class> 标签中为新建servlet类的全类名;

2.4 <url-pattern> 中为访问servlet类的URL;

2.5接下来是jsp 中的异步请求,我们这里用post代替Ajax做异步请求:

java代码:

  public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException
    {

        String data1 = "";
        try
        {
            List<String> lii = new ArrayList<String>();
            HttpSession session = request.getSession();
            int percent = session.getAttribute("upload_percent") == null ? 0
                    : Integer.parseInt(session.getAttribute("upload_percent")
                            .toString());
            int sum = session.getAttribute("upload_sum") == null ? 0 : Integer
                    .parseInt(session.getAttribute("upload_sum").toString());
            int end = session.getAttribute("upload_end") == null ? 0 : Integer
                    .parseInt(session.getAttribute("upload_end").toString());

            // 需要json格式数据,自己拼接
            String jsonStr = "{percent:'" + percent + "',sum:'" + sum
                    + "',end:'" + end + "'}";
            lii.add(jsonStr);
            data1 = Arrays.toString(lii.toArray());
            response.getWriter().write(data1);
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }

    }

js代码:

    $.post("selectUploadPercent.do", {"a": "22"}, function(data, status) {
        var end = 0;
        var per = 0;
        if (status == "success") {//成功回调参数
            var da = eval(data) //转json
            end = da[0].end; 
            per = da[0].percent ;
    });

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_无往而不胜_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值