java-сервлет request.getParameterValues ​​() - PullRequest
5 голосов
/ 11 апреля 2011

У меня есть массив, который содержит другие массивы, которые я передаю в качестве параметра.Я использую request.getParameterValues(), чтобы получить параметр, но проблема заключается только в том, что исходный массив приходит в формате массива.Массивы внутри массива преобразуются в строку.Есть ли другой способ отправки и получения многомерных массивов?

Ответы [ 2 ]

21 голосов
/ 06 апреля 2013

Если вы используете метод GET, вы должны построить запрос следующим образом:

http://localhost:8080/myApp/myServlet/?habits=Movies&habits=Writing&habits=Singing

Если вы используете метод POST, вы должны использовать application/x-www-form-urlencoded Тип содержимого или просто использовать метод Post в своей HTML-форме. Например:

 <form method="post">
 Habits :
    <input type="checkbox" name="habits" value="Reading">Reading
    <input type="checkbox" name="habits" value="Movies">Movies
    <input type="checkbox" name="habits" value="Writing">Writing
    <input type="checkbox" name="habits" value="Singing">Singing
    <input type="submit" value="Submit">
 </form>

Тогда в обоих случаях в вашем сервлете:

String[] outerArray=request.getParameterValues('habits');
your array will be filled with separated values:

//["Writing","Singing"]
1 голос
/ 11 апреля 2011

если внутренние массивы идут через запятую (,), попробуйте следующий код

String[] outerArray=request.getParameterValues('parameterName');

String[] innerArray=outerArray[0].split(",");

Динамически, вы можете сделать это и использовать разные String[] для хранения данных или использовать ArrayList из String[]

for (int i = 0; i < outerArray.length; i++) {

           String[] innerArray=outerArray[i].split(",");         
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...