From 9f9e4188c020788d62bea9930189c71d7cf319bc Mon Sep 17 00:00:00 2001 From: Sanders Date: Thu, 28 Dec 2023 12:04:34 +0300 Subject: [PATCH] 4 --- .../example/controllers/PeopleController.java | 16 +++++++++++++--- src/main/java/org/example/dao/PersonDAO.java | 5 +++++ src/main/java/org/example/models/Person.java | 2 ++ src/main/webapp/WEB-INF/views/people/new.html | 17 +++++++++++++++++ 4 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 src/main/webapp/WEB-INF/views/people/new.html diff --git a/src/main/java/org/example/controllers/PeopleController.java b/src/main/java/org/example/controllers/PeopleController.java index fed4152..bb2ac2e 100644 --- a/src/main/java/org/example/controllers/PeopleController.java +++ b/src/main/java/org/example/controllers/PeopleController.java @@ -1,12 +1,11 @@ package org.example.controllers; import org.example.dao.PersonDAO; +import org.example.models.Person; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.*; @Controller @RequestMapping("/people") @@ -29,4 +28,15 @@ public class PeopleController { model.addAttribute("person",personDAO.show(id)); return "people/show"; } + + @GetMapping("/new") + public String newPerson(@ModelAttribute("person") Person person) { + return "people/new"; + } + + @PostMapping() + public String create(@ModelAttribute("person") Person person){ + personDAO.save(person); + return "redirect:people"; + } } diff --git a/src/main/java/org/example/dao/PersonDAO.java b/src/main/java/org/example/dao/PersonDAO.java index f6d4b1e..0872233 100644 --- a/src/main/java/org/example/dao/PersonDAO.java +++ b/src/main/java/org/example/dao/PersonDAO.java @@ -22,4 +22,9 @@ public class PersonDAO { public Person show(int id) { return people.stream().filter(person -> person.getId() == id).findAny().orElse(null); } + + public void save(Person person) { + person.setId(people.size()+1); + people.add(person); + } } diff --git a/src/main/java/org/example/models/Person.java b/src/main/java/org/example/models/Person.java index fe27c44..02b1a32 100644 --- a/src/main/java/org/example/models/Person.java +++ b/src/main/java/org/example/models/Person.java @@ -2,10 +2,12 @@ package org.example.models; import lombok.AllArgsConstructor; import lombok.Getter; +import lombok.NoArgsConstructor; import lombok.Setter; @Getter@Setter @AllArgsConstructor +@NoArgsConstructor public class Person { private String name; diff --git a/src/main/webapp/WEB-INF/views/people/new.html b/src/main/webapp/WEB-INF/views/people/new.html new file mode 100644 index 0000000..68d4c35 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/people/new.html @@ -0,0 +1,17 @@ + + + + + Save + + + +
+ + +
+ +
+ + + \ No newline at end of file