如何访问Thymeleaf中的内部对象?

时间:2016-03-10 11:14:59

标签: java spring el thymeleaf

如果User使用百日咳,我正试图迭代一个列表,

我的User对象就像这样

public class User implements java.io.Serializable {

    private Integer userId;
    private Department department;
    private String email;
    // setters and getters etc
}

和部门对象就是这样

public class Department implements java.io.Serializable {

    private Integer departmentId;
    private String name;
    // setters and getters etc
}

在百里香中我这样做

<tr th:each="user : ${users}">
    <td th:text="${user.email}"></td>
    <td th:text="${user.department.name}"></td>
</tr>

我收到此错误

org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "user.department.name"

如果我只使用user.email,则没有问题。

那么如何访问Thymeleaf EL中的内部对象? (在我的情况下user.department.name

1 个答案:

答案 0 :(得分:3)

您正在正确访问它,但如果用户的部门为空,您将收到异常。

您可以使用'?'来使用null安全解除引用运营商,即

<td th:text="${user.department?.name}"></td>

这将首先检查department是否为null。参见Spring EL的Safe Navigation Operator