我有一个表单页面,当我单击“提交”时,它会获得用户输入并显示它。 同时,我希望它生成JSON文本,以便可以将其传输到另一个API
这是我的控制器:
> @Controller public class HomeController {
>
> @GetMapping("/home")
> public String getForm(Model model) {
>
> model.addAttribute("formdata", new FormData());
> return "home.html";
> }
>
> @PostMapping("/home")
> public String postForm(Model model, @ModelAttribute FormData formdata ) {
> model.addAttribute("formdata", formdata);
> return "info.html";
> } }
我的home.html
入门:处理表单提交
名称:
nric:
性别:
<p>smoker: <select th:field="*{smoker}">
<option th:value="'Y'" th:text="Yes"></option>
<option th:value="'N'" th:text="No"></option>
</select>
</p>
<p>occupation: <select th:field="*{occupation}">
<option th:value="'ENGINEER'" th:text="ENGINEER"></option>
<option th:value="'ACCOUNTANT'" th:text="ACCOUNTANT"></option>
<option th:value="'DOCTOR'" th:text="DOCTOR"></option>
<option th:value="'MECHANIC'" th:text="MECHANIC"></option>
</select>
</p>
<p>lifegoals: <select th:field="*{lifegoals}">
<option th:value="'EDUCATION'" th:text="EDUCATION"></option>
<option th:value="'RETIREMENT'" th:text="RETIREMENT"></option>
<option th:value="'WEALTH_TRANSFER'" th:text="WEALTH_TRANSFER"></option>
<option th:value="'GROW_YOUR_WEALTH'" th:text="GROW_YOUR_WEALTH"></option>
</select>
<p>payment frequency: <select th:field="*{paymentFrequency}">
<option th:value="'NA'" th:text="NA"></option>
<option th:value="'YEARLY'" th:text="YEARLY"></option>
<option th:value="'HALF_YEARLY'" th:text="HALF_YEARLY"></option>
<option th:value="'QUARTERLY'" th:text="QUARTERLY"></option>
<option th:value="'MONTHLY'" th:text="MONTHLY"></option>
<option th:value="'SINGLE'" th:text="SINGLE"></option>
</select>
<p>plan options: <select th:field="*{plans}">
<option th:value="'3_PAY_15'" th:text="3_PAY_15"></option>
<option th:value="'5_PAY_15'" th:text="5_PAY_15"></option>
</select><br>
<input type="radio" th:name="*{radioSumAssured}" value="SumAssured" />Sum Assured<br>
<input type="radio" th:name="*{radioIntendedPremium}" value="IntendedPremium" />Intended Premium<br>
<p>Basic Sum Assured: <input type="text" th:field="*{BasicSumAssured}" /></p>
<p>Basic Annual Premium: <input type="text" th:field="*{BasicAnnualPremium}" /></p>
<p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
</form> </body> </html>
我的info.html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Getting Started: Handling Form Submission</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>Result</h1>
<p th:text="'name: ' + ${formdata.name}" ></p>
<p th:text="'nric: ' + ${formdata.nric}"></p>
<p th:text="'gender: ' + ${formdata.gender}"></p>
<p th:text="'smoker: ' + ${formdata.smoker}"></p>
<p th:text="'occupation: ' + ${formdata.occupation}"></p>
<p th:text="'lifegoals: ' + ${formdata.lifegoals}"></p>
<p th:text="'payment method: ' + ${formdata.paymentFrequency}"></p>
<p th:text="'basic sum Assured: ' + ${formdata.BasicSumAssured}"></p>
<p th:text="'basic annual premium: ' + ${formdata.BasicAnnualPremium}"></p>
<p th:text="'plan options: ' + ${formdata.plans}"></p>
<a href="/home">Submit another message</a>
</body>
</html>
每当我进入“ info.html”页面时如何创建JSON文本?