Заполнение выбранных параметров из Beans в struts

У меня есть компонент Struts 1.2, как показано ниже, который содержит местоположения в массиве

Зарегистрировать.java

public class Register extends ActionForm 
{   
  private String[] userLocation = {"Chennai", "Bangalore", "Delhi", "Singapore"};
  .
  .
  //Getters and Setters
  .
  .
  .

}

Я хочу заполнить это в раскрывающемся списке в параметрах. Я попробовал следующий код, но он не работает. Любая идея, как это сделать. Возможно ли сделать это без использования коллекции с помощью массива.

RegisterForm.jsp

<html:select property="userSelectedLocation">
    <html:options  property="id" labelProperty="name" />
 </html:select>

person Java Beginner    schedule 17.05.2013    source источник


Ответы (1)


Прочтите документацию по тегу select и тег options.

Тег select ожидает найти выбранное значение поля выбора в свойстве. Вы указали userSelectedLocation в качестве свойства, но форма действия, похоже, не имеет никакого метода getUserSelectedLocation().

Тег options получает параметры из набора значений. Место, где он получает коллекцию, зависит от трех атрибутов: коллекции, имени и свойства. В документации говорится:

Указано только свойство. Значением этого атрибута является имя свойства bean-компонента ActionForm, связанного с нашей формой, которая вернет коллекцию.

Это означает, что тег options ищет метод getId() в форме действия, который вернул бы массив значений. Кажется, у вас нет такого метода.

В документации четко объясняется, как работает тег. Если бы вы сказали нам, что вы хотите сделать (что вы хотите, чтобы параметры выбора имели значение и метки, какое свойство содержит выбранное значение), мы могли бы сказать вам, что использовать.

person JB Nizet    schedule 17.05.2013
comment
Большое спасибо за ответ. Я новичок в Struts. Единственное сомнение в том, могу ли я заполнять значения из массива, потому что я уже научился заполнять из коллекции. Поскольку есть способ заполнения значений из массива для флажка, я хочу позволить себе получить ясно, возможно ли то же самое для раскрывающегося списка. Большое спасибо - person Java Beginner; 17.05.2013
comment
Попробуйте и посмотрите. IIRC, STruts отлично поддерживает массивы. Но использование массивов в любом случае не очень хорошая идея. Почему бы вам не использовать List<String> вместо этого? - person JB Nizet; 17.05.2013