2015-07-18 5 views
1

Я хочу создать раскрывающееся меню, которое позволяет клиенту искать пользователей по полю, указанному в раскрывающемся меню. Например, поиск по штатам, поиск по городу и т.д.Создание выпадающего меню и формы в Thymeleaf

Это то, что я до сих пор:

<p>Search options:</p> 
    <form action="#" th:action="@{/get/{value}" method="get"> 
    <select> 
     <option th:value="AllUsers">Search all users</option> 
     <option th:value="ByUsername">Search by user name</option> 
     <option th:value="ByFirstname">Search by first name</option> 
     <option th:value="ByLastname">Search by last name</option> 
     <option th:value="ByAddress">Search by address</option> 
     <option th:value="ByCity">Search by city</option> 
     <option th:value="ByState">Search by state</option> 
     <option th:value="ByZipCode">Search by zip code</option> 
     <option th:value="ByPhoneNumber">Search by phone number</option> 
     <option th:value="ByEmail">Search by email</option> 
    </select> 
    <input type="text" th:field="value" name="searchField" /> 
    <input type="submit" value="Search" name="searchButton" /> 
    </form> 

Я просто не знаю, как подключить action и value тег в настоящее время выбранного элемента в выпадающем списке, чтобы указать URI. Если пользователь выбирает, выполняет поиск по состоянию, и он входит в «Мэриленд», как я могу указать соответствующий тег URI?

Это будет мой метод весной, который выполняет действие:

@RequestMapping(value = "/get/ByState", method = RequestMethod.GET) 
public String getByState() { 
     ..... 
} 

@RequestMapping(value = "/get/ByCity", method = RequestMethod.GET) 
public String getByCity() { 
     ..... 
} 

ответ

4

Поскольку принятый ответ не использует Thymeleaf и этот вопрос является вершиной в Google. Я добавляю свое решение здесь.

В моей ситуации statues - это список значений Enum. Модель атрибут заполняются, как правило, вы делаете весной:

mav.addObject("statuses", EnumSet.allOf(Status.class)); 

Группа имеет подал тип статуса (перечисления).

<div class="form-group row"> 
    <select class="form-control" id="status" name="status"> 
     <option th:each="stat : ${statuses}" 
       th:value="${stat}" 
       th:text="${stat}" 
       th:selected="${stat.equals(group.status)}"/> 
    </select> 
</div> 

Это автоматически заполняет список и выбирает значение, выбранное в моем случае Группа:

enter image description here

+0

Что такое группа здесь &&, что означает группа.status? Является ли группа ключевым словом в thymeleaf/ – user641887

+0

Это ответ: Группа имеет тип типа Status (перечисление – agilob

+0

да спасибо .. с этим изменением Я могу отобразить выбранное значение в пользовательском интерфейсе, но остальные значения в ENUM не заполняются? Есть ли способ сделать это? Теперь мой выпадающий список содержит только одно значение (Мужчина для пола), мне нужно отобразить все значения Male, Female и дать пользователю возможность изменить его после заполнения ранее выбранное значение – user641887

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