如何评估百里香模板中嵌套对象的字段?

时间:2019-03-07 09:02:24

标签: 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>
                   <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?

2 个答案:

答案 0 :(得分:0)

您的NestedObject类没有名为“名称”的字段。

答案 1 :(得分:0)

如果you're not using in a form using th:object,则需要像这样使用#fields.hasErrors

${#fields.hasErrors('${mVCmodel.nestedObject.name}')}

如果您使用的是th:object,则应该可以执行以下操作:

${#fields.hasErrors('nestedObject.name')}

很难从您发布的代码中分辨出来。您是否对每个字段都有获取器和设置器?