Создание проекта Spring Boot + JPA + Thymeleaf. Это просто для учебной цели. Я хочу создать компанию и обновить ее.
Не удалось решить проблему CRUD.
Операция Crud «создать» работает правильно, а «обновление» - нет, просто снова создается новая. Пожалуйста, помогите.
Моя компанияКонтроллер
package ua.com.mmplus.promomanagement.controller;
import org.slf4j.Logger;
@Controller
public class CompanyController {
@Autowired
private CompanyService companyService;
private Logger logger = LoggerFactory.getLogger(this.getClass());
@RequestMapping(value = "/company/add", method = RequestMethod.GET)
public String companyForm(Model model){
model.addAttribute("company", new Company());
return "companyform";
}
@RequestMapping(path = "companylist", method = RequestMethod.POST)
public String companySubmit(Company company){
String info = String.format("Company submission: id = %d, company = %s" +
", email = %s", company.getId(), company.getCompanyName(),
company.getCompanyEmail());
logger.info(info);
companyService.save(company);
return "redirect:/";
}
@GetMapping("/companylist")
public String getCompanyList(Model model) {
model.addAttribute("companies", companyService.getAll());
return "companylist";
}
@GetMapping("company/edit/{id}")
public String updateCompany(@PathVariable(name = "id") Long id, Model model) {
model.addAttribute("company", companyService.findById(id));
return "companyform";
}
}
Моя компанияform.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Form Submission</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" media="all"
href="../../css/gtvg.css" th:href="@{/css/gtvg.css}" />
</head>
<body>
<h1>Company Form</h1>
<form action="#" th:action="@{/companylist}" th:object="${company}" method="post">
<p>New Company Name: <input type="text" th:field="*{companyName}" /></p>
<p>email: <input type="text" th:field="*{companyEmail}" /></p>
<p><input type="submit" value="SUBMIT"/><input type="reset" value="RESET"/></p>
</form>
<a href="home">У головне меню</a>
</body>
</html>