【问题标题】:How to set default form values for objects in Spring Boot : Thymeleaf如何在 Spring Boot 中为对象设置默认表单值:Thymeleaf
【发布时间】:2020-09-17 15:47:29
【问题描述】:

好的,所以我正在尝试学习 Spring Boot 和 thymeleaf。我有提交和创建的对象工作程序,放入数据库,然后更新 thymelaf 页面以允许我编辑刚刚创建的工作程序。对于编辑过程,我需要将 Worker 对象保存到具有相同 ID 的数据库中,以便更新它,我的问题是 ID 部分。我不希望用户在网页上输入 id,但我希望它自动设置。问题是,Spring Boot 目前不知道正在编辑哪个对象,但我有一种感觉,thymeleaf 知道,我只是不知道该怎么做。

               <div th:each="woo : ${workers}">
                    <h1 th:text="${woo.getFirstName() + ' ' + woo.getLastName()}"></h1>
                    <form th:action="@{/updateWorker}" th:object="${worker}" method="post">
                        <div>First name:<input type="text" placeholder="John" name="firstName" th:value="${woo.firstName}"/></div>
                        <div>Last name: <input type="text" placeholder="Smith" name="lastName" th:value="${woo.lastName}"/></div>    
                        <button type="submit">UPDATE</button>
                    </form>
                </div>

所以我有这个 ^... worker 对象有一个变量 id,我希望它在表单提交时自动设置为对象“woo”的 id。关于如何去做的任何想法?此外,对于我如何编写百里香模板的任何有用的批评将不胜感激,谢谢。

编辑:所以,仅仅一个小时后,我想出了一个部分解决方案, &lt;button type="submit" class="btn update" name="id" th:value="${woo.id}"&gt;UPDATE&lt;/button&gt;,它允许我在按钮按下时设置一个值。虽然如果我以后想设置几个默认值怎么办,我刚刚找到的这个临时解决方案只允许一个值,如果我想设置两个甚至三个怎么办。有什么想法吗?

【问题讨论】:

    标签: java html spring spring-boot thymeleaf


    【解决方案1】:

    您可以使用 ID 值创建隐藏输入:

    <input type="hidden" name="id" th:value="${woo.id}"/>
    

    【讨论】:

    • 谢谢!!!这比把它放在按钮中更干净,我可以将它用于多个值。我只是觉得这看起来确实很作弊,有人知道是否有更官方的方式吗?或者这是最官方的方式。除此之外,很棒的解决方案。
    • 您可以使用 th:action="@{/updateWorker/${woo.id}}" 来识别每个 Worker。要发送所有值,您需要将 Worker 类属性与表单输入绑定。
    猜你喜欢
    • 2020-12-12
    • 2013-12-26
    • 1970-01-01
    • 2019-02-15
    • 2015-07-03
    • 1970-01-01
    • 2015-08-31
    • 2011-06-25
    • 2016-01-19
    相关资源
    最近更新 更多