#spring #forms #spring-mvc #thymeleaf
#весна #формы #весна-mvc #тимьяновый лист
Вопрос:
Я новичок в spring и пробовал кодировать прототип.
Я пробовал сделать форму. Всякий раз, когда я нажимаю кнопку отправки, ничего не происходит. Я использую Spring Boot 2.4.3 с Oracle OpenJDK 15.0.2. Я пробовал Firefox и Chrome. js-консоль пуста.
Это моя модель ( Patient.java
):
public class Patient implements Serializable {
private long id;
private String firstname;
private String lastname;
// Geters and seters
}
Мой контроллер ( PatientController.java
):
@Controller
public class PatientController {
@GetMapping("/patient")
public String patientForm(Model model) {
model.addAttribute("patient", new Patient());
return "addPatient";
}
@PostMapping("/patient")
public String patientSubmit(@ModelAttribute("patient") Patient patient, Model model) {
model.addAttribute("patient", patient);
return "addedPatient";
}
}
Мой addPatient.html
:
<!DOCTYPE html>
<html xmlns:th="https://www.thymeleaf.org" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>HTL-Testet Prototype</title>
</head>
<body>
<h1>Add a patient</h1>
<from action="#" th:action="@{/patient}" th:object="${patient}" method="post">
<p>Id: <input type="number" th:field="*{id}"/></p>
<p>Firstname: <input type="text" th:field="*{firstname}"/></p>
<p>Lastname : <input type="text" th:field="*{lastname}"/></p>
<button type="submit">Register</button>
</from>
</body>
</html>
Мой addedPatient.html
:
<!DOCTYPE html>
<html xmlns:th="https://www.thymeleaf.org" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>HTL-Testet Prototype</title>
</head>
<body>
<h1>Add a patient</h1>
<p th:text="'Added ' '[' ${patient.id} ']' ${patient.firstname} ' ' ${patient.lastname}"></p>
<a href="/patient">Add another patient</a>
</body>
</html>
Ответ №1:
from
Тег на addPatient.hmtl
странице неправильный, если вы измените его на form
тег, как показано ниже, проблема будет решена:
<!DOCTYPE html>
<html xmlns:th="https://www.thymeleaf.org" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>HTL-Testet Prototype</title>
</head>
<body>
<h1>Add a patient</h1>
<form action="#" th:action="@{/patient}" th:object="${patient}" method="post">
<p>Id: <input type="number" th:field="*{id}"/></p>
<p>Firstname: <input type="text" th:field="*{firstname}"/></p>
<p>Lastname : <input type="text" th:field="*{lastname}"/></p>
<button type="submit">Register</button>
</form>
</body>
</html>