2013-09-17 3 views
1

Если HTML форма имеет несколько входов с тем же именем, сервлет будет понимать его как массив:

Форма:

<form> 
    User 1:<input name="user" /> 
    User 2:<input name="user" /> 
    User 3:<input name="user" /> 
    <input type="submit" /> 
</form> 

Servlet:

String[] user = request.getParameterValues("user"); 

Но если Я использую jQuery для создания ajax-вызова и отправки массива в качестве параметра, он добавляет «[]» в имя свойства

Javascript:

$.ajax({ 
    ... 
    data:{ 
     user: ["value1", "value2", "value3"] 
    } 
}); 

Проверка заголовка запроса, данные были отправлены:

данные формы

user[]=value1&user[]=value2&user[]=value3 

Я знаю, что могу добавить [] в конец параметра getParameterValues, но я предпочитаю, чтобы jQuery не отправлял []

Как это сделать?

ответ

2

Вы должны установить traditional option в true, если вы хотите использовать традиционный стиль param serialization:

$.ajax({ 
    ... 
    data:{ 
     user: ["value1", "value2", "value3"] 
    }, 
    traditional: true 
}); 

Используя этот ваш запрос будет выглядеть следующим образом:

user=value1&user=value2&user=value3 
Смежные вопросы