Я установил тег формы «выбрать» Spring на странице jsp, используемой для ввода параметров поиска и отображения результатов. Тег выбора формы Spring позволяет пользователю выбирать более одного элемента благодаря опции «multiple=true». У меня возникла проблема с отображением результатов, чтобы подчеркнуть, что было выбрано несколько элементов.
Он отлично работает, если пользователь выбирает один элемент, он выделяется при повторном отображении формы (при этом введенные параметры поиска по-прежнему отображаются в верхней половине страницы, а результаты поиска отображаются в нижней половине).
Выбран один элемент:
Один элемент по-прежнему отображается как выбранный на дисплее ответа:
Однако, если выбрано несколько элементов, они вообще не выделяются на экране результатов:
Выбрано несколько элементов:
Отображение нескольких элементов, не отображаемых в результатах:
Вот соответствующий код jsp:
Команда действия:
<form:form action="/${localePath}/search/ssSearch.do" method="post" modelAttribute="searchCommand" onsubmit="return trackSearch();">
Выберите код:
<tr valign="top"><td>Test Items</td><td>
<form:select path="testItems" multiple="true" size="4">
<form:option value="">All Items</form:option>
<form:options items="${testItems}" />
</form:select>
Java-код:
Вот код «testItems» в объекте SearchCommand:
private String testItems;
public String getTestItems() {
return testItems;
}
public void setTestItems(String testItems) {
this.testItems = testItems;
}
Вот код запроса контроллера:
@RequestMapping(value = "/*/search/ssSearch.do", method=RequestMethod.POST)
public String searchResults( HttpServletRequest request,
@ModelAttribute("searchCommand") SearchCommand command, ModelMap map)
throws Exception
{
return searchResultsDo(command, map, request);
}
Вот код, используемый для заполнения testItems:
Map<String, String> testItemsMap = new TreeMap<String, String>();
testItemsMap.put("item1 name", "item 1 value");
testItemsMap.put("item2 name", "item 2 value");
testItemsMap.put("item3 name", "item 3 value");
testItemsMap.put("item4 name", "item 4 value");
testItemsMap.put("item5 name", "item 5 value");
testItemsMap.put("item6 name", "item 6 value");
testItemsMap.put("item7 name", "item 7 value");
testItemsMap.put("item8 name", "item 8 value");
map.addAttribute("testItems", testItemsMap);
Как я могу выделить несколько выбранных элементов на странице ответа?