1

我正在尝试将长数组从 jquery 加载传递到 spring 控制器。我已经成功传递了字符串变量,但没有传递数组。

javascript:

function ModuleMemberCheckboxPassIds(){
     var memberUserIds = [];
     var memberNames = [];
     $('.membercheckbox:checked').each(function(i){      
         memberUserIds[i] = $(this).val();
     });
     alert(memberUserIds.length);
     $( "#onetextarea" ).load('/assign_task', {"memberUserIds":memberUserIds,  "testdata": "test", });   
}

弹簧控制器:

@RequestMapping(value="/assign_task")
    public String viewAssignTask(Model model, String testdata, HttpServletRequest request){

        if(request.getAttribute("memberUserIds")==null) System.out.println("null"); else System.out.println("not null"); //returns null

        System.out.println("test: " + testdata);//returns a value

        model.addAttribute("transferVO", new TransferVO());
        return "module/view-members-checkbox";
    }

viewAssignTask方法中,我能够读取从 jquery 发送的 tesdata 变量。但memberUserIds返回 null

请帮忙

4

2 回答 2

3

您是否期望服务器上有传入的 JSON 对象?如果是这样,您可以尝试使用 $.ajax 而不是 $.load:

var data={"memberUserIds":memberUserIds,"testdata": "test"};

$.ajax({
    url: '/assign_task',
    type: 'GET',
    data: JSON.stringify(data),
    contentType: 'application/json',
    success: function(html) {
        $("#onetextarea").html(html);
    }
}); 
于 2013-05-18T11:56:44.880 回答
2

您可以使用:

request.getParameterValues("memberUserIds");

用于获取多值参数。

否则:

您想要使用 Spring MVC 的功能的一个建议应该是:

RequestMapping(value="/assign_task")
    public String viewAssignTask(Model model, String testdata,@RequestParam String [] memberUserIds, @RequestParam String testData){
//Your Code
 }
于 2013-05-18T11:48:16.683 回答