См. Следующий пример (из документа API Struts 2.1.8):
<s:select label="Months"
name="months"
headerKey="-1" headerValue="Select Month"
list="#{'01':'Jan', '02':'Feb', [...]}"
value="selectedMonth"
required="true"
/>
Атрибут списка содержит карту, где ключ - это значение, которое будет отправлено, а значение - это значение, которое будет отображаться.
Конечно, месяцы статичны, но вы можете использовать список объектов домена или любые другие компоненты, которые вам нужны. В этом случае список должен храниться, как правило, как поле вашего класса действий. Тогда вы будете ссылаться на список или карту:
<s:select label="User"
name="users"
headerKey="-1" headerValue="Select User"
list="users"
value="selectedUser"
required="true"
/>
В этом случае ваше действие будет содержать карту с именами пользователей и их идентификаторами и получателем для нее: getUsers()
.
Если метод getUsers () вашего действия возвращает список объектов User, а класс User имеет по крайней мере (предположим) поля id
и username
, вам необходимо указать, какое поле использовать передаваемое значение и какое поле использовать для отображения при выборе. Это делается с помощью атрибутов listKey
и listValue
тега select:
<s:select label="User"
name="users"
headerKey="-1" headerValue="Select User"
list="users"
listKey="id"
listValue="username"
value="selectedUser"
required="true"
/>