2017-02-16 3 views
0

Я хочу добавить тег Select: multiple в свой JSP, а затем сопоставить его с классом модели формы, где я загружу загруженные данные.Какой тип используется для выбора: несколько весной?

Но я не нашел, какой тип использовать для переменной, чтобы я мог это сделать.

Что бы это было?

Ex .: JSP

<form:select multiple="true" path="harmonic"> 
    <c:forEach begin='1' end='15' varStatus='loop'> 
    <form:options items="<--Variable?->" itemValue="loop" itemLabel="loop"/> 
    </c:forEach> 
<form:select> 

Класс

public class HarmonicForm{ 

    private ???? selectMultiple; 

} 
+0

Вы попробовали массив идентификаторов? – cralfaro

+0

Nope. Может ли массив работать? –

+0

Я думаю, что это тоже сработает, но с перечнем легче справиться с этим, так что лучше подойти к подходу к списку – cralfaro

ответ

1

Spring выбирает признать любая коллекция, подобная списку или набору.

private List<YOUR_OBJECT_TYPE_HERE> selectMultiple; 

Вы можете передать свою модель на вид, и нет необходимости использовать foreach или тег опции.

<form:select multiple="true" path="harmonic" items="${items}" itemLabel="harmonicLabelAttribute" itemValue="harmonicValueAttribute" /> 

Вы можете проверить документацию TLD here.

+0

Итак, вопрос: если я добавлю $ {items} к выбору, как определить эту коллекцию $ {items} и как узнать, что было выбрано? В моем случае я хочу, чтобы пользователь выбирал от 1 до 15, любой и каждый номер, который он хочет. –

+0

$ {items} устанавливаются с помощью model.put (itemsCollection) из вашего контроллера. После отправки формы объект selectMultiple должен быть инициализирован выбранными объектами. Весна сделает это волшебство, поэтому вам не нужно беспокоиться об этом. –

+0

Итак, я мог бы также добавить переменную в модель формы, где у меня есть список со всеми объектами, которые я хочу быть доступными при выборе? Таким образом, я могу управлять числами модели. –

1

Вы должны использовать Collection<?> с некоторым объектом внутри. Вы можете создать свой собственный объект или использовать SelectItem.class

, а затем,

<form:select multiple="true" path="harmonic"> 
    <form:options items="${selectMultiple}" itemValue="value" itemLabel="name"/> 
</form:select> 
+0

Чтобы закончить разъяснение, могу ли я использовать целую коллекцию? Выбор состоит в том, чтобы позволить пользователю выбирать из целого ряда целых чисел. –

+0

Да, вы можете. нужно немного изменить. Просто удалите itemvalue и itemlabel из моего решения. –

1

Используйте список элементов

public class HarmonicForm{ 

    private Listy<Harmonic> harmonic; 

} 

public class Harmonic{ 
    //Be sure to implement equals and hashcode 
} 

Вы можете найти подобный случай здесь Spring select multiple tag and binding

Смежные вопросы