我有一个Spring的 Boot + Thymeleaf怀疑。假设我有一个控制器,它有两个处理程序方法,比如-
@Controller
public class MyController {
@GetMapping("/test")
public String test(Model model) {
model.addAttribute("message", "This is just a message");
return "test";
}
@GetMapping("/submit")
public String submit() {
//how to access model.getAttribute("message") here?
return "submit";
}
}
现在,在test()中,我在Model对象中放置了一个键“message”,然后返回test.html。现在,在test.html中,我可以任意使用${message}。现在在test.html中,点击一个按钮,我会重定向到“/submit”,但我也希望将“message”键传递给Model对象中的“/submit”,这样我也可以在submit()中使用相同的键。如何做到这一点?
test()(“message”键放在Model对象中)-> test.html -> submit()(如何在submit()中访问model.getAttribute(“message”)?)
1条答案
按热度按时间xdnvmnnf1#
你所要求的与你实际上想做的没有多大意义。您应该将
Model
视为仅在HTML页面呈现期间使用数据填充Thymeleaf模板的对象。您通常要做的是将数据存储在内存服务或存储库中,或者连接到可以保存该数据的任何类型的数据库。
当您想要编辑数据时,通常会有某种标识符指向存储数据的位置。对于关系数据库,这将是主键。
假设我有一个
users
表,主键是long
。要编辑一个用户,你通常需要一个这样的控制器方法:其中
users/edit.html
页面将有一个表单来显示要编辑的数据。表单将使用
@PostMapping
方法执行POST以将更新的数据发送回控制器,该方法将使用服务来存储更新的数据。如果你想了解更多关于如何使用Thymeleaf的表单,你可以看看Form handling with Thymeleaf