Раньше у меня было две html странички: одна выводит пользователей, вторая создаёт. Обе работали, но при нажаатии на input страничка просто обновлялась, и если в url перейти на страничку с пользователями, данные добавлялись.
Я объединил эти две странички, таблица теперь выглядит так: первая строчка - название колонн, вторая - добавление данных, третья и последующие - вывод данных. НО! Теперь при нажатии на input не только не перезагружается страничка, но и не добавляет данные. Я знаю, что я нашаманил с маппингом, но как это правильно сделать я не знаю. Перевернул "спринг в действии", перевернул русскоязычный интернет, ответ не нашёл. Объясните джуну, в чём проблема и как правильно это делается
Вьюшка:
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>Список сотрудников</title>
<link rel="stylesheet" type="text/css" th:href="@{/css/style.css}"/>
</head>
<body>
<h1>Список</h1>
<br/><br/>
<div> <!--Пробная страничка, для объединения user.html и user_created.html-->
<table border="1">
<tr>
<th>ID</th>
<th>Имя</th>
<th>Фамилия</th>
<th>Почта</th>
<th>Номер тел.</th>
</tr>
<tr form th:action="@{/}"
th:object="${addUser}" method="POST">
<td><input/></td>
<td><input type="text" th:field="*{lastName}" /></td>
<td><input type="text" th:field="*{firstName}" /></td>
<td><input type="text" th:field="*{email}" /></td>
<td><input type="text" th:field="*{number}" /></td>
<input type="submit" value="add" />
</form>
</tr>
<tr th:each ="user : ${user}">
<td th:utext="${user.id}">...</td>
<td th:utext="${user.firstName}">...</td>
<td th:utext="${user.lastName}">...</td>
<td th:utext="${user.email}">...</td>
<td th:utext="${user.number}">...</td>
</tr>
</table>
</div>
</body>
</html>
Контроллер:
package ru.noorsoft.javaeducation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
@Controller
public class UsersController {
@Autowired
private UserRepository us;
public UsersController(UserRepository us) {
this.us = us; //объект репозитория
us.save(new User("Dmitry", "Volokitin", "zoldaten48@gmail.com", "89005910999"));//добавление
//пробного пользователя, для отображения в таблице
}
AddUser addUsers = new AddUser();
@GetMapping("/")
public String greeting(Model model, @ModelAttribute("addUser") AddUser addUser) {
model.addAttribute("user", us.findAll());
model.addAttribute("addUser", addUser);
String firstName = addUser.getFirstName();
String lastName = addUser.getLastName();
String email = addUser.getEmail();
String number = addUser.getNumber();
//функция проверки, заполнены ли ячейки с именем и фамилией
if (firstName != null && firstName.length() > 0 //
&& lastName != null && lastName.length() > 0) {
User newUser = new User(firstName, lastName, email, number);
us.save(newUser);
return "redirect:users";
}
model.addAttribute("errorMessage", errorMessage);
return "users";
}
@Value("${welcome.message}")
private String message;
@Value("${error.message}")
private String errorMessage;
}
https://github.com/chpokerstyle/java-spring-master/