spring thymeleaf组合框获得选定值

时间:2018-02-18 11:38:23

标签: java spring thymeleaf

我有这个枚举类,它有一组值。 我在组合框中显示值。 如何获取所选值?

@Entity
@Table(name = "accountant")
public class Accountant {

    @Column(name="country")
    private String country;

    public enum country{
        MALAYSA,GREECE
    }
}

在控制器中我已经设置了它 modelAndView.addObject("currentAccountant", loggedInUser);

我将它们全部列出:

<form th:action="@{/updateAccountant}"  th:object="${currentAccountant}" class="form-inline"  method="post" id="companyProfileForm" name="companyProfileForm">

<select class="form-control selectpicker" data-live-search="true" style="width:300px;margin-left: 50px;"  >
    <option value="" selected disabled hidden>Please select a Country</option>
        <option th:each="country : ${T(Accountant.Country).values()}"
            th:value="${country}" 
            th:text="${country.getValue()}">
        </option>
    </select>
</form>

如何从表单中的组合框中获取所选值? 然后在加载表单时设置值。

我尝试了这个,但组合框中没有列出任何内容。:

<select th:field="*{country}" class="form-control selectpicker" data-live-search="true">

当我删除th:field="*{country}"时,它会显示国家/地区。  <select class="form-control selectpicker" data-live-search="true">

1 个答案:

答案 0 :(得分:0)

所以这花了我一些时间来解决,破解解决方案。

  1. 对于组合框,要获取选定值,th:field它不应该是字段名称 - 列名变量country。它应该是枚举列表名称Country请注意命名差异大写C

  2. 要获取组合框的所有值,您应该执行${T(com.workspez.model.Accountant.States).getSortedValue()}您需要指定完整包名称