2013-09-12 2 views
1

Внутри моего действия У меня есть карта, которая будет отправлена ​​в JSPопубликовать карту от JSP к действию

Map<String,Person> map = LinkedHashMap<String,Person>(); 
map.put("1",personA); 
map.put("2",personB); 
map.put("3",personC); 

Ну, я могу оказать JSP со значениями в карте должным образом, но я с трудом найти решение, которое позволит мне вернуть карту в другое действие. Вот что я пробовал:

<s:iterator value="map" status="p"> 
    <s:hidden name="map.[%{#p.index}].key"/> 
    <s:hidden name="map.[%{#p.index}].value.name"/> 
    <s:hidden name="map.[%{#p.index}].value.address"/> 
</s:iterator> 

И я продолжаю получать исключение параллельной модификации.

У кого-нибудь есть ключ? Большое спасибо!!

+0

Включите карту в сеанс. –

+2

Зачем ставить карту в сеанс? И как это решит проблему синтаксиса? –

+0

Где происходит одновременное изменение исключения? –

ответ

1
  1. Вам не нужен ключ и значение, они автоматически обрабатываются;

  2. Ключевая часть синтаксически неверна: удалите точку (или квадратные скобки);

  3. Ключевой частью не хватает двойных кавычек; ваш синтаксис заключается в доступе к списку;

  4. Ваш LinkedHashMap использует последовательный номер в качестве ключа; почему бы не использовать список?

Кстати, совершенно непроверенные, но это должно быть

<s:iterator value="map" status="p"> 
    <s:hidden name="map['%{#p.index}'].name"/> 
    <s:hidden name="map['%{#p.index}'].address"/> 
</s:iterator> 

что в Java есть что-то вроде

((Person)getMap().get("1")).setName(); 
    ((Person)getMap().get("1")).setAddress(); 

при условии, что они последовательно, упорядоченный и т.д. Но это решение Безразлично 't кажется надежным для меня ...

+0

исключение с одновременной модификацией – user1935724

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