zoukankan      html  css  js  c++  java
  • jQuery $.ajax传递数组的traditional参数传递必须true

    起初我认为traditional:true,可有可无,但是后来不用traditional的时候,发现后台无法获取selectUsers的值,那么可以肯定的是traditional默认值是false.
    当提交的参数是数组( {selectUsers:[value,value,value]} ),如果是false的话,则提交时会是"selectUsers[]=value&selectUsers[]=value"
    如果设置成true,则提交时会是"selectUsers=value&selectUsers=value"
    这样后台就能用String[] ids=request.getParameterValues("selectUsers"); 获取到值。

    官方文档的解释如下:
    traditional 
    类型:Boolean
    如果你想要用传统的方式来序列化数据,那么就设置为 true。

    一:前台jquery

    deleteAll() {
        var selectUsers = new Array();
        //var selectUsers = null;
        $(":checkbox[name='userID']").each(function() {
            if ($(this).attr("checked")) selectUsers.push($(this).val());
            //selectUsers += "," + $(this).val();
        })
        //alert(selectUsers);
        $.ajax({
            //async : false,
            traditional: true,
            type: "post",
            url: "elecUserAction_delete.do",
            data: {
                selectUsers: selectUsers
            },
            success: function(responsText) {
                if (responsText == "1") {
                    alert("删除成功");
                }
            }
        });
    }

    二:后台Action代码

    public String delete() {
        //ActionContext context=ActionContext.getContext(); 
        //HttpServletRequest request=(HttpServletRequest)context.get(ServletActionContext.HTTP_REQUEST); 
        String[] ids = request.getParameterValues("selectUsers");
        System.out.println(ids.toString());
        PrintWriter out = null;
        out.write("1");
        return home();
    }
  • 相关阅读:
    内置函数
    map,reduce和filter函数
    函数式编程和尾调用
    函数作用域,匿名函数
    全局变量和局部变量
    函数和过程
    百分号字符串拼接
    集合关系运算交,差,并集
    C#基础-压缩文件及故障排除
    【QQ】前端实现QQ会话功能
  • 原文地址:https://www.cnblogs.com/ziyoublog/p/10237532.html
Copyright © 2011-2022 走看看