Для простоты я буду определять сценарий, как: класс Person
определяет объект с id
(int
) и атрибутом name
(String
). Я создал List<Person> persons
, которые загружаются на страницу JSP соответствующим методом класса Action (getPersons()
), чтобы заполнить тег <s:radio>
. Пока что так хорошо, JSP заполняет <s:radio>
соответственно. Я могу выбрать и отправить вариант классу действий (определенному в элементе <form>
JSP). Моя проблема заключается в том, что я могу подать только имя выбранного лица в <s:radio>
, когда я действительно хочу отправить персоналу id
. Как мне это сделать?Отправить <s:radio> выбор тегов с другим атрибутом из одной отображаемых в
Практический пример: У меня есть 2 человека на списке <s:radio>
, Джон (с ID = 1) и Питер (с ID = 2). Я хочу показать их имена в элементе <s:radio>
, но если я выберу Питер, я хочу отправить 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>
класс Action (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;
}
}
Я попытался использовать как 'listKey', так и' listValue' без успеха (и спасибо за указание 'personId' неправильного типа, btw!). Еще одно сомнение: у меня теперь есть проблема с настройкой значения '' (с атрибутом 'value'). Я использовал метод getDefaultPersonName() 'в классе действия (что-то вроде' value = "defaultPersonName" '), и он работал, но после начала использования этих новых 2 атрибутов он исчез. Знаете ли вы, как я могу это исправить? (и если вы найдете его более подходящим, я могу задать новый вопрос) –
jaff
@jaff: теперь вы отправляете 'id' вместо' name', поэтому 'value' также должен быть' id'. –