为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 ThymeLeaf 将对象的属性绑定到隐藏字段?

如何使用 ThymeLeaf 将对象的属性绑定到隐藏字段?

陪伴而非守候 2021-12-10 12:27:19
HTML - ThymeLeaf 模板:<form th:action="@{/gustos}" method="post" th:object="${gusto}">    <div class="col s12 l8">                    <select th:field="*{categoria}">                        <option value="" disabled="disabled">Categoria</option>                        <option value="Dulces de Leche">Dulce de Leche</option>                        <option value="Cremas">Cremas</option>                        <option value="Chocolates">Chocolates</option>                        <option value="Frutales">Frutales</option>                    </select>    </div></form>这是我的 Java Gusto类属性:    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    private int id;    @Column    private int idCategoria;    @Column    private String categoria;    @Column // opcional (name="")    private String nombre;如果用户选择第一个选项 (Dulce de Leche),我需要Gusto类中的int idCategoria值取值为 1,第二个为 2,第三个为 3,第四个为 4,但是我不知道如何用 ThymeLeaf 做到这一点!!此逻辑基于类别属性,如果类别等于某个名称,则类别 ID 将是某个数字...示例:如果类别等于 'Dulces de Leche',则类别 ID 应为 '1' !!!¡ 注意我在表单顶部使用对象绑定!我试过这个:  <div th:field="*{idCategoria}">            <div th:switch="*{categoria}">                <input type="hidden" th:case="'Dulces de Leche'" value="1" />                <input type="hidden" th:case="'Cremas'" value="2" />                <input type="hidden" th:case="'Chocolates'" value="3" />                <input type="hidden" th:case="'Frutales'" value="4" />            </div>  </div>但它不起作用!!!我想做模板中的逻辑!我该怎么做 ?
查看完整描述

2 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

您可以使用它jQuery来完成此操作。只需使用您缺少的字段创建一个新的隐藏输入即可。您的代码将类似于以下内容。


首先您的新输入和类别的选择更改


<input id="id" th:field="*{id}" hidden="hidden"/>

<select id="categorias" th:field="*{categoria}">

    <option value="" disabled="disabled">Categoria</option>

    <option value="Dulces de Leche">Dulce de Leche</option>

    <option value="Cremas">Cremas</option>

    <option value="Chocolates">Chocolates</option>

    <option value="Frutales">Frutales</option>

</select>

现在你的 jQuery


$('#categorias').on('change', function() {

    var value = $(this).val();

    if(value === "Dulce de Leche") {

        $('#id').val(1);

    }

    // Now you just fill the rest.

})

所以现在,每次更改类别时,都会为 id 添加一个新值。希望能帮助到你!如果您需要其他任何东西,请告诉我。


查看完整回答
反对 回复 2021-12-10
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

试试这个:


<select th:field="*{categoria}">

    <option th:value="" disabled="disabled">Categoria</option>

    <option th:value="1" th:text="Dulces de Leche"></option>

    <option th:value="2" th:text="Cremas"></option>

    <option th:value="3" th:text="Chocolates"></option>

    <option th:value="4" th:text="Frutales"></option>

</select>

这样,当您通过后端检索值时,它将是 1、2 或 3


查看完整回答
反对 回复 2021-12-10
  • 2 回答
  • 0 关注
  • 527 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号