Как получить обновленные значения списка из JSP в моем действии?

У меня есть JSP, в котором я перебираю список и создаю редактируемую таблицу.

<s:iterator value="test" id="countryList">
  <tr>
    <td><s:textfield name="countryCode" value="%{countryCode}" theme="simple" /></td>
    <td><s:textfield name="countryName" value="%{countryName}" theme="simple" /></td>
  </tr>
 </s:iterator>

Мой список:

List<Country> test = new ArrayList<Country>();  

Класс страны:

public class Country {
    private String countryCode;
    private String countryName;


and the getter setters......

и сказать, что я заполняю список, как:

Country country = new Country();
Country country1 = new Country();

country.setCountryCode("1");
country.setCountryName("India");

country1.setCountryCode("2");
country1.setCountryName("US");

test.add(country);
test.add(country1);

Теперь, когда я изменяю значения countrycode а также countryname в JSP я должен получить обновленные значения в своем действии. Но я не в состоянии. Есть ли способ получить эти обновленные значения.

1 ответ

Решение

Вам нужно Country объект создается, когда params Перехватчик заполняет ваш список, используя доступ к индексированным свойствам.

<s:iterator value="test" id="countryList" status="stat">
  <tr>
    <td><s:textfield name="countryList[%{#stat.index}].countryCode" value="%{countryCode}" theme="simple" /></td>
    <td><s:textfield name="countryList[%{#stat.index}].countryName" value="%{countryName}" theme="simple" /></td>
  </tr>
 </s:iterator>

Чтобы распорки заполняли список, вы должны использовать аннотацию преобразования типа или эквивалент в конфигурации xml.

@Element(value = Country.class)
@Key(value = String.class)
@KeyProperty(value = "countryCode") 
@CreateIfNull(value = true)
private List<Country> countryList = new ArrayList<Country>;
Другие вопросы по тегам