2012-06-21 3 views
0

Я хочу отобразить набор букв карты в выпадающем списке и выбрать значение выбранного ключа, когда пользователь выбирает соответствующий ключ.Отображение набора карт в JSP

<form:options items="${alertsPrices}" /> 

Вышеупомянутый элемент my options (я должен использовать форму Spring, а не стандартную форму html). На данный момент это передается значение выбранного ключа, а не значение, на которое указывает ключ.

Кроме того, я не уверен, что мне нужно передать (с контроллера) значение alertPrices как всей карты или только набора ключей?

Пользователю необходимо выбрать ключ из выпадающего списка, и это передаст значение, которое ключ сопоставляет, а не сам ключ.

+0

Нет формы «JSTL», существуют фреймворки, которые имеют собственные теги для форм - было бы полезно пометить вопрос любой каркасом, который вы используете. –

+0

Извинения, это весенняя форма, я обновлю вопрос. – csilk

ответ

0

Read the documentation: атрибут

Элементы, как правило, заполняется коллекции или массива объектов элементов. itemValue и itemLabel просто ссылаются на bean свойства этих объектов предметов, если они указаны; в противном случае, элемент сами объекты будут строковой

Итак, если вы хотите, чтобы все записи на карту в окне выбора, и хотите, ключ записи в качестве метки опции и значение записи в качестве значение параметра, вам необходимо передать entrySet() карты в атрибут items и использовать itemValue="value" itemLabel="key".

+0

Я не слежу за свойствами компонента в документации. Используемая мной карта определяется как maptype в моей конфигурации itemss.xml. Нужно ли мне добавлять атрибуты itemValue и itemLabel в эту конфигурацию? – csilk

+0

Это довольно просто. Тег ожидает набор бинов в атрибуте 'items'. Если вы укажете 'itemValue =" foo "', тег вызовет 'getFoo()' в bean-компоненте, чтобы получить значение параметра, который он генерирует. И если вы установите 'itemLabel =" bar "', он вызовет 'getBar()' в bean-компоненте, чтобы получить метку генерируемого ею параметра. В вашем случае у вас есть коллекция экземпляров «Map.Entry». И 'Map.Entry' имеет' getKey() 'и' getValue() 'для доступа к ключу и значению записи карты. –

+0

Я решил придерживаться метода по умолчанию, который делает Spring (используя ключ карты как значение и значение карты в качестве метки в списке). Спасибо за помощь. – csilk

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