这是一些代码:
1.
@GetMapping(path = "/register", produces = MediaType.TEXT_HTML_VALUE)
public String register(@RequestParam("name") String name,
RedirectAttributes redirectAttributes) {
// call to service
redirectAttributes.addAttribute("name", name);
return "redirect:/success";
}
此端点首先被命中并使用提供的名称注册用户并重定向到成功页面。它还提供用户名。2.
@GetMapping(value = "/success", produces = MediaType.TEXT_HTML_VALUE)
public String success(@ModelAttribute("name") String name, Model model) {
model.addAttribute("name", name);
return "success";
}
此端点将浏览器 URL 选项卡中的路径更改为 /success
并显示 success.html
模板。它还在模型中设置用户名,以便我们可以在 UI 上显示 ${name} registered successfully
.success.html
是 /templates
中的模板文件夹,我们希望在此操作结束后在 /success
上显示该文件夹页。一切都按预期工作。问题?使用名称显示在
/success
的 URL 中页。所以注册后,虽然我们希望 URL 只是
/success
,实际上是/success?name=John
.可以隐藏请求参数部分吗?或者以某种方式发送正文中的数据而不是请求参数。提前致谢,如果需要任何其他详细信息,请告诉我。
最佳答案
当然。例如可以通过使用 redirectAttributes.addFlashAttribute("name", name)
来完成。而不是 redirectAttributes.addAttribute("name", name)
在第一个 Controller 中。
您可以获得更多信息 here .
关于java - 如何从 thymeleaf 的 URL 中隐藏模型数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69016574/