2013-05-18 4 views
0

Я пытаюсь передать длинный массив из jquery load в контроллер весны. Я успешно передал строковые переменные, но не массив.параметр массива jquery load для весеннего контроллера mvc

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 метод, который я мог читать tesdata переменную, которая была отправлена ​​из JQuery. Но memberUserIds возвращает нулевое значение

пожалуйста, помогите

ответ

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 
} 
+0

request.getParameterValues ​​("memberUserIds"); все еще показывал нуль. Я не понимаю, что @RequestParam не работает. Звонок не был направлен на этот контроллер. @RequestMapping (значение = "/ assign_task") \t общественности Строка viewAssignTask (модель Модель, @ RequestParam String [] memberUserIds, @ RequestParam Струнный Testdata) {...} Javascript вызов: $ ("#onetextarea"). load ('/ hamdan/module/assign_task', {"memberUserIds": memberUserIds, "testdata": "test",}); – user510783

+0

Вы можете отправить мне сообщение об ошибке –

+0

нет сообщения об ошибке. Код в порядке. Я думаю, что запрос не смог найти, какой contoller и путь должен быть отправлен запрос. – user510783

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); 
    } 
}); 
+0

GET не работает, мне пришлось изменить его для публикации. Я не знаю, почему, но мне пришлось написать это данные: JSON.stringify (eval ({"memberUserIds": memberUserIds, "testdata": "test"})), – user510783

Смежные вопросы