Для сохранения списка телефонов пользователя в Spring Boot Java с использованием Thymeleaf, вам потребуется выполнить несколько шагов:
Шаг 1: Создание модели данных
Сначала вам необходимо создать модель данных для телефона, которая будет представлять собой отдельный класс Java. Например, вы можете создать класс Phone с полями, такими как номер телефона, тип номера и описание:
public class Phone { private String number; private String type; private String description; // Создайте геттеры и сеттеры }
Шаг 2: Создание модели данных пользователя
Затем вы должны создать модель данных пользователя, которая будет содержать список телефонов пользователя. Например, вы можете создать класс User с полем phones:
public class User { private List<Phone> phones; // Создайте геттеры и сеттеры }
Шаг 3: Создание контроллера
Теперь вам необходимо создать контроллер, который будет обрабатывать запросы для отображения списка телефонов и сохранения изменений. Создайте класс UserController с методами для отображения списка телефонов и сохранения изменений:
@Controller public class UserController { // Получение списка телефонов @GetMapping("/phones") public String getPhones(Model model) { User user = // Здесь вы должны получить объект пользователя из базы данных или каким-либо другим способом model.addAttribute("user", user); return "phones"; } // Сохранение изменений @PostMapping("/phones") public String savePhones(@ModelAttribute User user) { // Здесь вы должны сохранить объект пользователя с обновленным списком телефонов в базу данных или каким-либо другим способом return "redirect:/phones"; } }
Шаг 4: Создание представления Thymeleaf
Теперь вам нужно создать представление Thymeleaf для отображения списка телефонов и редактирования. Создайте файл phones.html в папке resources/templates со следующим содержимым:
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Phone List</title> </head> <body> <h1>Phone List</h1> <form action="#" th:action="@{/phones}" th:object="${user}" method="post"> <table> <tr th:each="phone, phoneNumberStat : *{phones}"> <td><input type="text" th:field="*{phones[__${phoneNumberStat.index}__].number}" /></td> <td><input type="text" th:field="*{phones[__${phoneNumberStat.index}__].type}" /></td> <td><input type="text" th:field="*{phones[__${phoneNumberStat.index}__].description}" /></td> </tr> </table> <button type="submit">Save</button> </form> </body> </html>
В этом представлении мы используем Thymeleaf для динамического отображения полей телефона в зависимости от количества телефонов в списке. Мы также используем th:field атрибут для связи полей с соответствующими полями модели данных.
Шаг 5: Настройка маршрутизации
В конце вам нужно настроить маршрутизацию в вашем приложении Spring Boot, чтобы запросы на адрес "/phones" перенаправлялись на методы контроллера UserController. В class-файле вашего приложения добавьте следующий код:
@SpringBootApplication public class YourApplicationNameApplication { public static void main(String[] args) { SpringApplication.run(YourApplicationNameApplication.class, args); } // Добавьте этот бин, чтобы Thymeleaf мог корректно обрабатывать полный путь к css- и js-файлам // Если вы используете версию Thymeleaf 3.0.10.RELEASE или выше, вы можете удалить этот бин @Bean public ServletContextTemplateResolver defaultTemplateResolver() { ServletContextTemplateResolver resolver = new ServletContextTemplateResolver(); resolver.setPrefix("/"); resolver.setSuffix(".html"); resolver.setTemplateMode("HTML"); resolver.setCharacterEncoding("UTF-8"); return resolver; } }
Теперь, когда вы запускаете ваше приложение Spring Boot, вы можете перейти по адресу "/phones" для отображения списка телефонов и редактирования. После сохранения изменений будет выполнен переадресация на страницу со списком телефонов.
Надеюсь, этот развернутый ответ поможет вам сохранить список телефонов юзера в Spring Boot Java с использованием Thymeleaf!