2015-07-16 2 views
1

Я использовал, чтобы сделать это в PHP, где я могу сделать, как это в HTML:Retriving карты, как ключ-ключ-значение из запроса POST

<input name="a[b][c]" value="abc"> 
<input name="a[b][d]" value="def"> 
<input name="a[d][y]" value="nope"> 

Затем получить его в PHP, например, как:

foreach($_POST['a']['b'] as $thisId => $value){ 
    echo "key: $thisId, value: $value\n"; 
} 

Какие выходы:

key: c, value: abc 
key: d, value: def 

Я пытался найти, но я не могу показаться, чтобы быть в состоянии найти эквивалент в сервлеты. Как я могу получить эквивалент с помощью простых сервлетов (без меня сам код)?
Если он не существует, есть ли библиотека, которая выполняет эту работу?

Edit: Чтобы добавить до того, что sᴜʀᴇsʜ ᴀᴛᴛᴀ упоминает, я не хочу, чтобы список всего, что я получаю в запросе ... Я добавил еще один элемент в приведенном выше примере, чтобы попытаться сделать его более ясным.

+0

Я точно не знал. см. эту ссылку http://stackoverflow.com/questions/14677993/how-to-create-a-hashmap-with-two-keys-key-pair-value. – Satya

+0

@ Сатья Ницца попробуйте, но нет. Мне нужно было бы поместить значения там, поэтому мне пришлось бы делать работу независимо от того, ... – brunoais

ответ

0

Вы ищете что-то вроде этого?

Map<String, String[]> paramValMap = req.getParameterMap(); 
    for (Map.Entry<String, String[]> param : paramValMap.entrySet()) { 
    String key = (String) param.getKey(); 
    String[] values = (String[]) param.getValue(); 
    out.print(key); 
    for (String val : values) { 
      out.println(val); 
    } 
    } 

Эта карта содержит каждый параметр и массив его значений.

+0

Нет. Это дает мне все параметры, отправленные через POST, но с ними нет древовидной организации. Кроме того, если есть вход с именем = "a [c] [y]", я был бы прикручен кодом выше. – brunoais

+0

@brunoais Пока вы комментируете, я редактировал. –

+0

Все те же вещи. Это более полезный API, но он по-прежнему остается единственным ключевым значением, а не ключевым ключ-ключ-значение – brunoais