【发布时间】:2020-09-04 23:45:41
【问题描述】:
我正试图深入了解 Thymeleaf 和一些仍然很简单的形式,但无法让它发挥作用......
我有一个业务对象,它存储了一些按枚举分类的值(内部实现不在此问题的范围内):
public class MyBusObj {
public static enum MY_TYPE {A, B, C };
public int getValue( MY_TYPE type ) { ... }
public void setValue( MY_TYPE type, int value ) { ... }
}
当我将该对象的实例传递给我的模型时 'model.addAttribute("myBusObj", new MyBusObj());' 它到达模板级别,我可以像这样访问所有内部可用的值(showTypes 基本上是 MY_TYPE 或它的子集作为数组):
<td th:each="type : ${showTypes}">
<input type="number" th:value="${myBusObj.getValue( type )}" th:field="${myBusObj.setValue( type )}"/>
</td>
它显示一行编辑框,每个值一个。这就是我想要实现的,而且它是动态的,因为如果我添加更多类型,则会自动显示一个新的类型“D”的框,这很完美。
虽然来自业务对象的方向 -> 视图完美地工作,因为 'getValue( type )' 导致正确的值,但部分 'th:field="${myBusObj.setValue( type )}"' 显然不能工作因为它必须是“(类型,值)”之类的东西,但我也不能写“myBusObj.value(类型)”。
谁能想到如何将用户输入写回业务对象的解决方案?否则我必须想一个“拐杖”,比如重组我的业务对象。
提前致谢, 斯蒂芬
【问题讨论】:
标签: java html spring thymeleaf