• 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();
    }
  • 相关阅读:
    Maven 打包指定子工程项目(springcloud分模块打包)
    linux常见问题: zip/unzip: command not found
    CentOS8安装jdk1.8
    nacos-docker镜像安装nacos并配置数据库
    浏览器的一个请求从发送到返回都经历了什么
    python之scrapy
    常见的爬虫与反爬虫斗争
    Python闭包与延迟绑定
    ip代理
    python编程:统计文件中单词出现次数
  • 原文地址:https://www.cnblogs.com/ziyoublog/p/10237532.html
Copyright © 2020-2023  润新知