Правильное использование LabelValueBean

У меня есть переменная:

private ArrayList<LabelValueBean> circleNameIdList;

внутри моего класса Action, где его значение заполняется.

Я хочу отобразить метку в моем раскрывающемся списке в JSP, и когда выбрана одна метка, соответствующее значение для этой конкретной метки в circleNameIdList будет передано на сервер. Например: Если выбрана метка: NewYork, то соответствующая id = 5 отправляется на сервер.

Как я могу этого добиться?

До сих пор я делал это в JSP:

<s:select list="#session.circleNameIdList" label="Select Circle:" name="circleNameIdList" id="circleNameIdList"></s:select>

Тем не менее, это отображение не правильно.


person Siddharth Trikha    schedule 06.12.2013    source источник


Ответы (1)


Я вижу, вы используете LableValueBean для заполнения и отображения раскрывающегося списка. Это бывший bean-компонент, используемый, наконец, для отображения списка объектов. В Struts2 такой вспомогательный компонент больше не требуется. Вы можете отобразить список объектов, указав ключевое поле, которое будет содержать уникальное значение выбранного параметра и значение, которое будет отображаться в виде текста параметра. Например, если ваш объект

public class Circle {
   private Long id;
   //getter and setter here

  private String name;
  //getter and setter here
} 

и у вас есть в классе действий

private List<Circle> circleNameIdList;
//getter and setter here

/**
 * Hold the selected value
 */
private Long circleId;
//getter and setter here

тогда

<s:select id="circleNameIdListID" label="Circle:" name="circleId" 
  list="circleNameIdList"   listKey="id" listValue="name" headerKey="-1" headerValue="Select Circle"/>

можно использовать для отображения раскрывающегося списка.

person Roman C    schedule 06.12.2013
comment
Круг в моем случае не является объектом. Мой кругNameIdList был ArrayList‹LabelValueBean›. Так что в основном своего рода карта со строками типов ‹String CircleName, String CircleId›. Теперь я хочу отображать имена в раскрывающемся списке и получать идентификатор в классе действий. Как мне это сделать???? - person Siddharth Trikha; 09.12.2013
comment
Добавьте/замените эти атрибуты listKey="value" listValue="label". - person Roman C; 09.12.2013