【问题标题】:Spring MVC and Thymeleaf - how to retrieve selected value in drop down menuSpring MVC 和 Thymeleaf - 如何在下拉菜单中检索选定的值
【发布时间】:2015-08-04 15:24:50
【问题描述】:

如何在 Thymeleaf 的下拉菜单中检索选定的值并让 Spring MVC 处理它?

这是我的百里香代码:

<form style="display:inline-block" th:action="@{/search}" 
      th:object="${searchOptions}" method="get">
    <select id="optionsList" name="optionsListId">
        <option th:each="option : ${searchOptions}"
                th:value="${option.getOption()}"
                th:text="${option.getOptionName()}"
                th:selected="${selectedOptionsList.contains(option.getOption())}">Options</option>
    </select>
</form>

“searchOptions”是模型属性的名称,它是SearchOptionobjects 的ArrayList。

这是 SearchOptions 类:

package formBeans;

public class SearchOption {

    private String option;
    private String optionName;

    public SearchOption() {

    }
    public SearchOption(String option, String optionName) {
        this.option = option;
        this.optionName = optionName;       
    }
    public String getOption() {
        return option;
    }
    public String getOptionName() {
        return optionName;
    }
    public void setOption(String option) {
        this.option = option;
    }
    public void setOptionName(String optionName) {
        this.optionName = optionName;
    }
}

如何使用 spring mvc 编写代码来检索下拉框中的选定值。我曾尝试在网上查找示例,但没有帮助。

谢谢

【问题讨论】:

    标签: spring spring-mvc drop-down-menu html-select thymeleaf


    【解决方案1】:

    控制器:

    searchOptions 仅包含生成选项元素的数据。 selectedOption 必须在显示表单和提交端点之前添加到模型中。

    @RequestMapping("/myFormPage")
    public String myFormPage(
                     Model model, 
                     @ModelAttribute("selectedOption") SearchOption selectedOption) {
        List<SearchOption> searchOptions = new ArrayList<>();
        searchOptions.add(new SearchOption("option1", "optionName1"));
        searchOptions.add(new SearchOption("option2", "optionName2"));
        model.addAttribute("searchOptions", searchOptions);
        return "myFormPage";
    }
    
    @RequestMapping("/search")
    public String search(
                     @ModelAttribute("selectedOption") SearchOption selectedOption) {
        System.out.println(selectedOption.getOption());
        return "search";
    }
    

    HTML:

    在表单元素中,th:object="${selectedOption}" 定义了用于存储提交数据的模型属性。 th:field="*{option}" 定义了 selectedOption 的属性,用于存储选定的值。

    <form th:action="@{/search}" th:object="${selectedOption}" th:method="get">
        <select th:field="*{option}">
            <option th:each="option : ${searchOptions}" 
                    th:value="${option.getOption()}" 
                    th:text="${option.getOptionName()}">Options</option>
        </select>
        <button type="submit">submit</button>
    </form>
    

    【讨论】:

      猜你喜欢
      • 2020-04-20
      • 2021-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 2020-09-02
      相关资源
      最近更新 更多