summaryrefslogtreecommitdiff
path: root/spring-boot/06-form-handling-with-thymeleaf/src/main/java/com/example/spring/contact/ContactController.java
blob: 20c482d4d15bc99927ff336ae87edeae31d55276 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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";
	}

}