diff options
Diffstat (limited to 'spring-boot/07-thymeleaf-common-theme/src/main/java/com/example/spring/contact/ContactController.java')
| -rw-r--r-- | spring-boot/07-thymeleaf-common-theme/src/main/java/com/example/spring/contact/ContactController.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/spring-boot/07-thymeleaf-common-theme/src/main/java/com/example/spring/contact/ContactController.java b/spring-boot/07-thymeleaf-common-theme/src/main/java/com/example/spring/contact/ContactController.java new file mode 100644 index 0000000..20c482d --- /dev/null +++ b/spring-boot/07-thymeleaf-common-theme/src/main/java/com/example/spring/contact/ContactController.java @@ -0,0 +1,34 @@ +package com.example.spring.contact; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; + +import jakarta.validation.Valid; + +@Controller +public class ContactController { + + @GetMapping("/contact") + public String showForm(Model model) { + model.addAttribute("contactForm", new ContactForm()); + return "contact/form"; + } + + @PostMapping("/contact") + public String processSubmission(@Valid @ModelAttribute ContactForm contactForm, BindingResult bindingResult, + Model model) { + if (bindingResult.hasErrors()) { + return "contact/form"; + } + + // Do whatever needed with the submitted data here. + // For example, invoke a method in a service/componet bean to send an email to contact person. + + return "contact/result"; + } + +} |
