我正在用thymeleaf制作一个springmvc应用程序。
应用程序在窗体中包含一个组合框/下拉菜单。我希望组合框中的每个选定值都链接到特定字段的更新。即 value 1
->表单更新
field 1 value 2
->表单更新 field 2
...
我试图改变 th:field
使用javascript,但是看起来thymeleaf标记是“预处理”的,一旦html被呈现并且表单与特定字段相关联,它就保持这样。
面对这个问题最好的办法是什么?
每次组合框的值更改时是否需要触发页面刷新,以便表单更新的字段可以更改,还是有更好的方法?
提前谢谢。
1条答案
按热度按时间dkqlctbz1#
正如您提到的,在呈现页面之后,不可能更改“th:field”或任何特定于thymeleaf的属性。
但是,“th:field”通常只是设置“id”、“name”和“value”属性的快捷方式(请看这里:https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html#inputs)因此您可以从javascript手动更新这些内容。
尽管在本例中,我认为最简单的解决方案是在java代码中创建一种新类型的对象,其中的字段与表单的字段匹配,然后使用该对象。例如:
在模板中:
以及您的post handler方法:
…而不是直接使用“mybackendobject”(或其他什么)作为form对象。