2013-05-02 4 views
0

У меня есть действие, которое имеет переменную HashMap<String, MyObject>Struts2: Проблемы получения данных из HTML/JSP

Мой Объект:

public class MyObject { 

    private Boolean confermata; 

    private String idObj; 

    private String versione; 

    /* (getters and setters) */ 

} 

Когда JSP сниппет:

<s:hidden name="form.datiVersioneQuoteAssegnazione['%{#tmpIdObj}'].confermata"/> 
<s:hidden name="form.datiVersioneQuoteAssegnazione['%{#tmpIdObj}'].idObj"/> 
<s:hidden name="form.datiVersioneQuoteAssegnazione['%{#tmpIdObj}'].versione"/> 

tmpIdObj является еще переменная ... это прекрасно.

Проблема: Когда я заселить MyObject из БД и я загружаю JSP вывод правилен, но когда я отправить данные на сервер (нажав на кнопку в моем <s:form>) в HashMap будет построен правильно. Отлаживая его, это <String,MyObject>, но значения из формы не принимаются, поэтому объекты MyObjects пустые ... Furhtermore, я видел, что сеттеры MyObjects не вызываются. Может ли кто-нибудь сказать мне, почему?

+0

У вас есть сеттеры/геттеры для вашей карты в действии? –

+0

Используете ли вы стек перехватчика по умолчанию? У вас есть конструктор no-args в myObject (неявный или явный)? –

+0

А что такое «форма»? –

ответ

0

Я решил. Проблема заключалась в том, что я определил Hashmap:

private HashMap<String, MyObject> datiVersioneQuoteAssegnazione;

Когда я определить его как карту следующим образом, она работает:

private Map<String, MyObject> datiVersioneQuoteAssegnazione;

кажется, что Struts не признает HashMaps. ..странный.

+1

Он не может определить тип элемента внутри карты, если вы используете реализацию (например,' HashMap'), а не интерфейс 'Map' , Если вам нужно использовать 'HashMap', вы можете использовать аннотацию' @ Element'. См. Мой ответ на этот вопрос: http://stackoverflow.com/q/15006868/1700321. –

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