Ajax传递数组的问题

我的jsp页面中利用了Struts2的标签,而且又是多选,如果直接用form表单提交就会自动封装成一个数据传递到后台,但是如果是ajax提交就不行,后台获取到的数组值为null。

                                                                                 multiple="true" size="5"
                                          list="#roleList" listKey="id" listValue="name">
                                     

于是上网查了些资料,只要在ajax的属性中添加traditional:true就行了,

$.ajax({
                type:"POST",
                url:url,
                traditional:true,
                dataType:'json',
                data:{
                    loginName:$("#loginName1").val(),
                    name:$("#name11").val(),
                    gender:$("input[name='gender']:checked").val(),
                    phoneNumber:$("#phoneNumber").val(),
                    email:$("#email").val(),
                    description:$("#description").val(),
                    roleIds:$("#roleIds").val(),
                },
                success:function(data){
                    if(data.state == "success"){
                        closeWindow();
                        $.messager.show({
                             title:'友情提示',
                             msg:'操作成功'
                        });
                       searchForm();
                    }else{
                        $.messager.show({
                             title:'友情提示',
                             msg:'操作失败'
                        });
                    }
                },
                error:function(){
                    $.messager.show({
                         title:'友情提示',
                         msg:'操作失败'
                    });
                }
             });

你可能感兴趣的:(JavaScript)