BAEL-3307: Handling URL Encoded data in Form Submission in a Spring REST Service (#8255)

This commit is contained in:
Tapan Avasthi 2019-12-01 22:02:29 +05:30 committed by Sam Millington
parent 3685d331d9
commit d7adefab3f
4 changed files with 120 additions and 0 deletions

View File

@ -0,0 +1,14 @@
package com.baeldung.form_submission;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

View File

@ -0,0 +1,42 @@
package com.baeldung.form_submission.controllers;
import com.baeldung.form_submission.model.Feedback;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.*;
@Controller
public class FeedbackForm {
@GetMapping(path = "/feedback")
public String getFeedbackForm(Model model) {
Feedback feedback = new Feedback();
model.addAttribute("feedback", feedback);
return "feedback";
}
@PostMapping(
path = "/web/feedback",
consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE})
public String handleBrowserSubmissions(Feedback feedback) throws Exception {
// Save feedback data
return "redirect:/feedback/success";
}
@GetMapping("/feedback/success")
public ResponseEntity<String> getSuccess() {
return new ResponseEntity<String>("Thank you for submitting feedback.", HttpStatus.OK);
}
@PostMapping(
path = "/feedback",
consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE})
public ResponseEntity<String> handleNonBrowserSubmissions(@RequestParam MultiValueMap paramMap) throws Exception {
// Save feedback data
return new ResponseEntity<String>("Thank you for submitting feedback", HttpStatus.OK);
}
}

View File

@ -0,0 +1,23 @@
package com.baeldung.form_submission.model;
public class Feedback {
private String emailId;
private String comment;
public String getEmailId() {
return this.emailId;
}
public void setEmailId(String emailId) {
this.emailId = emailId;
}
public String getComment() {
return this.comment;
}
public void setComment(String comment) {
this.comment = comment;
}
}

View File

@ -0,0 +1,41 @@
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Poetry Contest: Submission</title>
</head>
<body>
<form action="#" method="post" th:action="@{/web/feedback}" th:object="${feedback}">
<table border='0' cellpadding='2' cellspacing='2' width='480px'>
<tr>
<td align='center'>
<label for="email">Email:</label>
</td>
<td>
<input th:field=*{emailId} type="text"/>
</td>
</tr>
<tr>
<td align='center'>
<label for="comment">Comment:</label>
</td>
<td>
<textarea cols="30" rows="30" th:field=*{comment}/>
</td>
</tr>
<tr>
<td align='center'>
<input type="submit" value="Submit Feedback">
</td>
</tr>
</table>
</form>
</body>
</html>