在Thymeleaf中创建下拉菜单和表单

时间:2015-07-18 19:55:32

标签: html html5 spring spring-mvc 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>

我只是不确定如何连接下拉列表中当前所选项目的actionvalue标记以指定URI。如果用户选择,按州搜索,并且他输入“Maryland”,我该如何指定相应的URI标签?

这将是我在Spring中执行操作的方法:

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

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

2 个答案:

答案 0 :(得分:5)

因为接受的答案不是使用Thymeleaf而且这个问题在Google中排名第一,我在这里添加我的解决方案。

在我的情况下,statues是一个枚举值列表。模型属性的填充方式与在Spring中通常一样:

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

Group有一个类型为Status(枚举)的字段。

<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

答案 1 :(得分:0)

您在此链接中只有所需的答案:

http://fruzenshtein.com/spring-mvc-form-select-tag/