我试图添加/打印来自html的两个值,并将添加的内容显示到另一个html中。因此,第一个请求即将到达端点@GetMapping("/addition")
,并且正在打开form
,在form
动作中,我给了另一个端点@PostMapping("/submit")
,它应该在另一个html上发送值,但是它正在打印唯一不是来自表单的硬编码值。
所以这里是控制器部分:
@GetMapping("/addition")
public String getInputForm(Model model) {
model.addAttribute("addpojo", new AddPojo());
return "addition";
}
@PostMapping("/submit")
public String SubmitForm(@RequestParam("a") int a, @RequestParam("b") int b, AddPojo addpojo, Model model) {
addpojo.setA(a); addpojo.setB(b);
model.addAttribute("com", addpojo);
return "added";
}
AddPojo.java
公共类AddPojo {
private int a;
private int b;
getter and setters....
addition.html:
<form action="#" th:action="@{/submit}" th:object="${addpojo}" method="POST">
First Value:<input type="text" name="a" th:field="*{a}"/>
Second Value:<input type="text" name="b" th:field="*{b}"/>
<p><input type="submit" value="add" /> <input type="reset" value="Reset" /></p>
</form>
added.html
<body>
<!-- ${add.a + add.b} -->
Addition of two values is: ${com.a+com.b}
</body>
答案 0 :(得分:1)
从HTML中获取的值不会作为方法的整数。因此,应将参数字符串而不是整数。下面的方法测试成功。
@PostMapping("/submit")
public String SubmitForm(@RequestParam("a") String a, @RequestParam("b") String b, Model model,AddPojo addPojo) {
addPojo.setA(Integer.parseInt(a));
addPojo.setB(Integer.parseInt(b));
model.addAttribute("com", addPojo);
return "added";
}
答案 1 :(得分:0)
我认为,如果您像这样编写控制器,将会得到预期的结果。接收带有@ModelAttribute的对象。不需要RequestParam。
@PostMapping("/submit")
public String SubmitForm(@ModelAttribute("addpojo") AddPojo addpojo, Model model) {
model.addAttribute("com", addpojo);
return "added";
}
在HTML中打印您的总和,请使用此代码段
Addition of two values is: <span th:text="${com.a + com.b}"></span>