Для простоты я определю сценарий следующим образом: класс Person
определяет объект с атрибутами id
(int
) и name
(String
). Я создал List<Person> persons
, которые загружаются на страницу JSP с помощью соответствующего метода класса Action (getPersons()
), чтобы заполнить тег <s:radio>
. Пока все хорошо, JSP соответственно заполняет <s:radio>
. Я могу выбрать и отправить вариант в класс действий (определенный в элементе <form>
JSP). Моя проблема в том, что я могу отправить только имя выбранного человека в <s:radio>
, тогда как я действительно хочу отправить id
человека. Как мне это сделать?
Практический пример: у меня есть 2 человека в списке <s:radio>
, Джон (с ID=1) и Питер (с ID=2). Я хочу отобразить их имена в элементе <s:radio>
, но если я выберу Peter, я хочу отправить 2
в класс действия вместо его имени.
Код ниже:
JSP
<form action="submitData" class="ink-form all-100 small-100 tiny-100" method="post">
<s:radio label="persons" name="personId" list="persons.{name}" />
</form>
Класс действия (действие submitData)
public class SubmitData extends ActionSupport
{
private String personId;
public String execute()
{
System.out.println("Person ID: "+personId);
return SUCCESS;
}
public void setPersonId(String PersonId)
{
this.personId = personId;
}
}