У меня проблемы с Thymeleaf и Spring MVC.У меня есть класс сущностей, который управляется репозиторием, подключенным к базе данных SQL.
В моем контроллере я добавляю список возвращенных сущностей в мою модель и пытаюсь получить к ним доступ в своем шаблоне.Проблема в том, что когда одно из полей этого объекта имеет значение NULL, при попытке доступа к этому полю возвращается ошибка SpEL в следующем формате.
Exception evaluating SpringEL expression: "entity.phoneNumber" (template: "index" - line 13, col 17)
Как я уже упоминал ранее, это ТОЛЬКО происходит, когда одиниз полей сущности является нулевым.Я попытался использовать оператор безопасной навигации следующим образом ...
entity?.phoneNumber
Но это нулевой атрибут, а не сама сущность.
Я также пытался использовать что-то подобное,но это также возвращает ошибку, поскольку он даже не может найти атрибут, чтобы увидеть, является ли он нулевым.
<span th:if="${entity.phoneNumber != null}" th:text="${entity.phoneNumber}">Phone Number</span>
Контроллер выглядит следующим образом.
@Controller
public class IndexController {
@Autowired
CustomerService customerService;
@GetMapping
public String index(Model model) {
List<ActiveCustomersEntity> entities = customerService.getAllCustomers();
model.addAttribute("entities", entities);
return "index";
}
}
Теперь мой шаблон выглядитвот так.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>title</title>
</head>
<body>
<table>
<tr th:each="entity : ${entities}">
<td th:text="${entity.customerFormattedNm}">Customer Name</td>
<td th:text="${entity.accountStatusCd}">Account Status Code</td>
</tr>
</table>
</body>
</html>
Я неоднократно проверял на неправильное написание.Когда я смотрю только на атрибуты, которые гарантированно имеют значение, все работает как задумано.Только атрибуты, которые могут быть нулевыми, вызывают проблемы.
Любая помощь будет оценена!