2015-08-11 4 views
3

У меня есть список City объектов с name и id полей. Я использую Struts2, и у меня есть страница jsp с тегом select.Как получить свойства объекта из выбранного объекта в Struts 2

<s:select label="Source city" 
      list="cities" 
      name="source"/> 

Вот Action класса

public class CalculationAction extends ActionSupport { 

    private List<City> cities; 
    private DataAccessPerformer dao = new DataAccessPerformer(); 
    private String source; 
    private int sourceId; 

    public CalculationAction() { 
     cities = new ArrayList<City>(); 
     // getting cities from database 
     setCities(dao.getAllCities()); 
    } 

    // getters and setters 
} 

City учащегося

public class City { 

    private int id; 
    private String name; 

    @Override 
    public String toString() { 
     return getCityName(); 
    } 

    // getters and setters 
} 

Таким образом, я получаю source поля инициализируется, но я не могу принести sourceId.

Я попытался изменить source тип поля для City, но я получил FieldError

Недопустимое значение поля для поля «источника».

Как правильно получить идентификатор?

ответ

2

Чтобы установить id к значению выбора тега вы должны использовать дополнительные атрибуты

<s:select label="Source city" 
      list="cities" 
      listKey="id" 
      listValue="name" 
      name="sourceId"/> 
+0

Теперь она работает. Я добавил атрибуты для выбора тега, но изменил «listKey =» idStringValue ». Я также изменил тип 'sourceId' на String и создал метод getIdStringVaule в классе City. – dvorobiov

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