У меня есть выбор, которым управляет Тимелеаф
<select th:field = "*{customer}">
<option th:each = "customer: ${customers}" th:value = "${customer.id}" th:text = "${customer.name}"></option>
</select>
Этот выбор показывает мне всех клиентов БД.
Как я могу показать только клиента с идентификатором, который я получил отсюда:
@GetMapping("/add")
public String addRoute(Model model) {
model.addAttribute("route", new RouteCommand());
/*User userAux = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
model.addAttribute("customer", userAux.getCustomer().getId());*/
return "admin/routes/add";
}
Закомментированный код получает идентификатор значения, которое я хочу показать в выборе.
Я хочу показать в выборе только клиента, принадлежащего пользователю, который вошел в систему. Это может быть только один. Но в избранном покажите мне всех клиентов БД. Моя идея - показать только имя клиента-пользователя, ровно одного клиента.
вместо того, чтобы передавать объект клиента, просто отправьте идентификатор, который вы хотите отобразить, с контроллера и прочтите его в html, вставьте больше кода, если вам нужна помощь






Я не уверен, что ниже работает, но вы можете попробовать, так как у меня нет рабочего пространства для тестирования решения, а также я предполагаю, что вы используете Spring Security Tag, и пользователь вошел в систему
<sec:authentication property = "principal.customer.id" var = "cId" scope = "page" />
<select th:field = "*{customer}">
<option th:each = "customer: ${customers.?[id == __${cId}__]}" th:value = "${customer.id}" th:text = "${customer.name}"></option>
</select>
Спасибо за помощь; D
Что значит «показывать только покупателя с идентификатором»? Разве это не то, что у вас есть сейчас? Или вы хотите передать модели только CustomerID? Или вы хотите показать только одного покупателя?