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();
    }
  • 相关阅读:
    反向代理与正向代理
    vs2017 调试时出现 cannot connect to runtime process错误
    .net core 配置swagger遇到的坑
    VC++下使用ADO操作数据库
    [转] CSS transition
    Javascript 函数和模块定义
    Service 如何知道caller
    [转] json in javascript
    [转] 让ctags支持Javascript
    [转] 使用NVM快速搭建NODE开发环境
  • 原文地址:https://www.cnblogs.com/ziyoublog/p/10237532.html
Copyright © 2011-2022 走看看