Я создал форму и действие в struts2 для редактирования записи пользователя, у пользователя может быть одна или несколько ролей, и у меня есть форма, в которой поле множественного выбора используется для выбора ролей для данного пользователя. Содержимое поля выбора считывается из базы данных, и я хочу, чтобы поле выбора предварительно выбирало текущие параметры пользователей при загрузке формы, используя примеры, найденные в Интернете. У меня есть следующее.
В моем классе действий
public List<Role> getRoles()
{
return roles;
}
public void setRoles( List<Role> roles )
{
this.roles = roles;
}
public List<Role> getAvailableRoles()
{
return availableRoles;
}
В моем JSP
<s:select list="availableRoles" listKey="id" listValue="name" name="roles" label="Roles" multiple="true" />
Поле множественного выбора создано нормально, однако для начала не выбрано ни одного элемента, и я немного сбит с толку, поскольку каждый найденный мной пример делает именно это.
Я попытался изменить поле выбора только на это:
<s:select list="availableRoles" name="roles" label="Roles" multiple="true" />
Этот способ успешно предварительно выбирает параметры, однако затем раскрывающийся список заполняется тем, что возвращается из метода toString() в моем классе Role, а не конкретно методами getId() и getName(), что мне и нужно. Есть идеи, где я ошибаюсь?