Я использую тимьяновый лист и весну. Я хочу реализовать почтовый запрос.
мой класс контроллера
public class URLController {
@RequestMapping(value = "index")
public String index1(Model model){
model.addAttribute("employee",new Employee());
return "index";
}
@RequestMapping(value = "/")
public String index(Model model){
model.addAttribute("employee",new Employee());
return "index";
}
@PostMapping("/result")
public String result(@ModelAttribute Employee employee){
System.out.print(employee.getName());
return "result";
}
}
а страница html
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<title>index page</title>
</head>
<body>
<form action = "#" th:action = "@{/result}" modelAttribute = "employee" method = "post">
<p>Id: <input type = "text" th:field = "*{id}" /></p>
<p>name: <input type = "text" th:field = "*{name}" /></p>
<p>phone: <input type = "text" th:field = "*{phone}" /></p>
<p><input type = "submit" value = "Submit" /> <input type = "reset" value = "Reset" /></p>
</form>
</body>
</html>
нет привязки к полю id.
Да, у меня есть идентификатор в сущности
А геттер для поля id?
да, у меня есть геттеры и сеттеры
В вашем HTML вам необходимо использовать правильный синтаксис для вашего атрибута модели. Spring жалуется, что не может найти свойство id
, потому что вы предоставляете строку employee
, а не объект.
modelAttribute = "employee" --> th:object = "${employee}"
Дополнительно вы можете объединиться в:
@Controller //please add this
public class URLController {
@GetMapping({"/", "/index"})
public String index1(Model model){
model.addAttribute("employee",new Employee());
return "index";
}
@PostMapping("/result")
public String result(@ModelAttribute Employee employee){
System.out.print(employee.getName()); //use a logger instead
return "result"; //may want to return a different page name for clarity
}
}
Ваша IDE не будет жаловаться, если вы измените свой HTML-тег на:
<html xmlns = "http://www.w3.org/1999/xhtml"
xmlns:th = "http://www.thymeleaf.org">
Наконец, вы можете использовать тип ввода tel
для поля телефона. Это позволит отображать настраиваемую клавиатуру для мобильных пользователей.
после добавления, что я получаю сообщение об ошибке Ни BindingResult, ни простой целевой объект для bean-компонента «employee» доступен в качестве атрибута запроса
ссылка на проект на github - github.com/dishankgoyal/springsBoot/tree/master/springs
Смотрите мой PR на github
Ну а есть ли у вас в классе
Employee
поле "id"?