HTML-百里香叶模板:
<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。第二个,第三个是3,第四个是4,但我不知道如何用ThymeLeaf做到这一点!此逻辑基于 categoria 属性,如果categoria等于某个名称,则categoriaId将是某个数字...例如:如果categoria等于'Dulces de Leche',则categoriaId应为'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>
但是它不起作用!!!我想做模板中的逻辑!
我该怎么办?
非常感谢<3
答案 0 :(得分:1)
您可以使用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中添加一个新值。希望能帮助到你!如果您还有其他需要,请告诉我。
答案 1 :(得分:0)
尝试一下:
<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