Spring boot 如何从thymeleaf模板中的嵌套对象计算字段?
给定两个对象:Spring boot 如何从thymeleaf模板中的嵌套对象计算字段?,spring-boot,spring-mvc,thymeleaf,Spring Boot,Spring Mvc,Thymeleaf,给定两个对象: public class MVCmodel { UUID uuid; NestedObject nestedObject = new NestedObject (); } public class NestedObject { @Size(min = 2, max = 99) String name = ""; } 胸腺素模板 <tr> <td>
public class MVCmodel {
UUID uuid;
NestedObject nestedObject = new NestedObject ();
}
public class NestedObject {
@Size(min = 2, max = 99)
String name = "";
}
胸腺素模板
<tr>
<td>
<input required="true" type="text" th:name="name"
th:value="${mVCmodel.getNestedObject.getName()}"
>
<span th:if="${#fields.hasErrors('name')}"
th:errors="${mVCmodel.getNestedObject().getName()}"
>Name Error
</span>
</td>
</tr>
名称错误
我得到这个错误:
计算SpringEL表达式时出现异常:“fields.hasErrors('name')”
SpringEL尝试求值mVCmodel.name,但必须失败,因为mVCmodel中没有字段名
如何计算字段mVCmodel.nestedObject.name?您的类nestedObject没有名为“name”的字段。如果需要使用
#fields.hasErrors,如下所示:
${#fields.hasErrors('${mVCmodel.nestedObject.name}')}
如果您使用的是th:object
,类似这样的操作应该可以:
${#fields.hasErrors('nestedObject.name')}
从你发布的代码很难分辨。每个字段都有getter和setter吗?有一个格式错误的td标记。注意:修复:(td>->)可能的FYI副本看起来像