绑定选择选项列表

时间:2019-04-30 07:19:45

标签: spring-boot thymeleaf

我目前不确定应该如何做。当方法= RequestMethod.POST时,应该如何将选择器绑定到我的对象。

这是我表格的一部分

<form th:action="@{/incidentDetail/update}" method="post" id="incidentDetailForm">

<div class="form-row">

    <div class="form-group col-md-6">
                <label for="location">Name</label> <input class="form-control"
                    type="text" name="ioName" id="ioName" th:value="${incident.ioName}" />
    </div>

       <div class="form-group col-md-3">
                <label for="location" class="cols-sm-2 control-label">Preparation
                    By</label><span class="bg-danger pull-right"></span>
                <div class="cols-sm-10">
                    <div class="input-group">
                        <span class="input-group-addon"><i class="fa fa-reorder fa"
                            aria-hidden="true"></i></span> <select class="form-control selectpicker"
                            th:object="${incident}" th:field="*{incidentPreparationBy}"
                            id="incidentPreparationBy" name="incidentPreparationBy"
                            roleId="incidentPreparationBy">
                            <option th:each="user: ${userList}" th:value="${incident.incidentPreparationBy}"
                                th:text="${user.name}"></option>
                        </select>
                    </div>
                </div>
    </div>

</form>

我的控制器

@RequestMapping(value = "/update", method = RequestMethod.POST)
    public String registerIncidentPost(@ModelAttribute("incident") Incident incident, HttpServletRequest request)
            throws Exception {

        incidentService.save(incident);

        return "redirect:/incidentDetail?id=" + incident.getId();
    }

事件实体的一部分

@ManyToOne
    @JoinColumn(name = "user_id_preparation_by")
    private User incidentPreparationBy;

1 个答案:

答案 0 :(得分:0)

您可以通过添加以下内容来选择:

@RequestParam("incidentPreparationBy") String option作为方法参数

到您的控制器方法。 这样,字符串“ option”将包含选定的值。

赞:

@RequestMapping(value = "/update", method = RequestMethod.POST)
public String registerIncidentPost(@ModelAttribute("incident") Incident incident, 
    @RequestParam("incidentPreparationBy") String option, HttpServletRequest request)
        throws Exception {
    String incidentPrepartionBy = option; //incidentPrepartionBy will give you the selected value now.
    incidentService.save(incident);

    return "redirect:/incidentDetail?id=" + incident.getId();
}