这里的菜鸟问题,我有<input>
我希望使用Thymeleaf显示用户的嵌套属性
我尝试通过将List
用户对象发送到我的表单
<select id="user">
<option value="" th:text="-Select-"></option>
<option
th:each="user: ${users}"
th:value="${user.id}"
th:text="${user.name}"
th:attr="data-department=${user.department.name}">
</option>
</select>
Thymeleaf可以找到嵌套的部门对象(返回[object, Object]
),但在尝试访问部门的名称时,在尝试访问部门的name
时会命名为SpringExpressionLanguage异常。
org.springframework.expression.spel.SpelEvaluationException: EL1007E:(pos 0): Property or field 'name' cannot be found on null
我还在阅读文档,但还没有找到如何访问它,这可能非常简单。有什么想法吗?
答案 0 :(得分:3)
显然,其中一个用户没有部门,因此离职人员是null
。 Thymeleaf无法获得null属性的值。这就是你得错的原因。在输出之前尝试检查部门不是null
:
<select id="user">
<option value="" th:text="-Select-"></option>
<option
th:each="user: ${users}"
th:value="${user.id}"
th:text="${user.name}"
th:attr="data-department=${user.department!=null}?${user.department.name}:'not specified'">
</option>
</select>