java - Spring Boot Thymeleaf 下拉列表

标签 java spring spring-mvc thymeleaf

我正在尝试将 Spring Bootthymeleaf 中的下拉列表中的值保留在数据库中,但是数据库填充了空值。

显然 Controller 没有传递该值。

虽然我可以在 GET 中获取并显示值,但无法在 POST 中保留它们。

我无法从任何地方获得清晰的示例,甚至 Thymeleaf 上的示例也不清楚。

请提供一些好的示例或解决方案。

代码如下。

@Controller
public class HomeController {

    @RequestMapping(value = "/signup", method = RequestMethod.POST)
    public String signupPost(@ModelAttribute("user") User user,
        Model model, BindingResult result) {

        if (!result.hasErrors()) {
            userService.saveUser(user);
        }
        return "redirect:/";

    }

}

User 类如下

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "user_id", nullable = false, updatable = false)
    private Long userId;

    @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumn(name = "award_partner_id")
    private AwardPartner awardPartner;

    getters and setters....
}

HTML 片段在这里:

<!--Award Partner-->
<div class="form-group">
    <label class="col-md-4 control-label">Award Partner</label>
    <div class="col-md-6 selectContainer">
        <div class="input-group">
            <span class="input-group-addon"><i
                class="glyphicon glyphicon-list"></i></span> 
                <select name="awardPartner" roleId="awardPartner" id="awardPartner"
                th:field="*{awardPartner}" class="form-control selectpicker">
                <option value="">Select Award Partner</option>
                <option th:each="awardPartner : ${awardPartners}"
                    th:value="${awardPartner.id}"
                    th:text="${awardPartner.title}"></option>
            </select>
        </div>
    </div>
</div>

<!-- end snippet -->

最佳答案

在您的表单标记中,我认为有 th:object="user"

在您选择的标签中,有 th:field="*{awardPartner}"。这意味着您将把选定的值(选定的选项标签的值)放入对象用户的字段awardPartner中。此字段 awardPartner 的类型为 AwardPartner

在选项值中,您有一个 id(int 或 string?)作为值,但不是 AwardPartner 类型的对象

关于java - Spring Boot Thymeleaf 下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46754705/

相关文章:

java - spring boot 不映射另一个模块中定义的端点

java - 在 Cassandra 中将集合作为行插入

java - 在 Java 中使用 Azure 服务总线

Spring LDAP - 在独立 java 程序中创建 LdapTemplate - 使用 Spring LDAP 作为 CDI 资源

java - 环境 env.getproperty 不起作用

spring-mvc - 如何在 Spring MVC 中使用 Jackson 和 Jersey 2 Client 反序列化 Joda DateTime?

java - 登录后填充用户 session

java - 部分数组错误

java - 导出到 .JAR 时不会抓取资源

java - 多个时区的Spring @Scheduled任务