Newer
Older
task-bldg / src / main / java / osm / surveyor / task / city / CityController.java
@haya4 haya4 on 11 Jul 2022 1 KB ログイン画面の実装
  1. package osm.surveyor.task.city;
  2.  
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.ui.Model;
  5. import org.springframework.validation.BindingResult;
  6. import org.springframework.validation.annotation.Validated;
  7. import org.springframework.web.bind.annotation.GetMapping;
  8. import org.springframework.web.bind.annotation.ModelAttribute;
  9. import org.springframework.web.bind.annotation.PathVariable;
  10. import org.springframework.web.bind.annotation.PostMapping;
  11.  
  12. import lombok.RequiredArgsConstructor;
  13. import osm.surveyor.task.city.model.City;
  14.  
  15. @RequiredArgsConstructor
  16. @Controller
  17. public class CityController {
  18. private final CityRepository repository;
  19. @GetMapping("/city")
  20. public String showList(Model model) {
  21. model.addAttribute("cities", repository.findAll());
  22. return "cities";
  23. }
  24. @GetMapping("/city/add")
  25. public String addCity(@ModelAttribute City city) {
  26. return "form";
  27. }
  28. @PostMapping("/city/process")
  29. public String process(@Validated @ModelAttribute City city, BindingResult result) {
  30. if (result.hasErrors()) {
  31. return "form";
  32. }
  33. repository.save(city);
  34. return "redirect:/city";
  35. }
  36.  
  37. @GetMapping("/city/edit/{id}")
  38. public String editCity(@PathVariable Long id, Model model) {
  39. model.addAttribute("city", repository.findById(id));
  40. return "form";
  41. }
  42.  
  43. @GetMapping("/city/delete/{id}")
  44. public String deleteCity(@PathVariable Long id) {
  45. repository.deleteById(id);
  46. return "redirect:/city";
  47. }
  48. }