Escenario
En Thymleaf podemos usar el atributo th:field para enlazar la vista con el modelo:
1 2 3 4 5 |
<select th:field="*{currency}"> <option th:value="'EUR'" th:text="Euros"></option> <option th:value="'USD'" th:text="Dolares"></option> <option th:value="'YEN'" th:text="Yenes"></option> </select> |
1 2 3 4 |
<select th:field="*{currency}"> <option th:each="currency : ${currencies}" th:value="${currency}" th:text="${currency}"> </option> </select> |
Problema
¿Qué pasa si queremos seleccionar una divisa por defecto? En el caso de que fuera el euro tendríamos que hacer algo así, ¿no?
1 2 3 4 |
<select th:field="*{currency}"> <option th:each="currency : ${currencies}" th:value="${currency}" th:text="${currency}" th:selected="${currency =='EUR'}"> </option> </select> |
Solución
Para que funcione es necesario quitar el atributo th:field y sustituirlo con unos id y name de toda la vida:
1 2 3 4 |
<select id="currency" name="currency"> <option th:each="currency : ${currencies}" th:value="${currency}" th:text="${currency}" th:selected="${currency =='EUR'}"> </option> </select> |
Genio!!! Llevo dándole vueltas a esto un buen rato. Y era llamar id y name. Muchas gracias!!!