You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Thymeleaf应用中隐藏重定向后URL中的模型数据?

问题根因

你当前使用的RedirectAttributes.addAttribute()方法默认会将参数拼接为重定向URL的查询参数,因此会直接暴露在浏览器地址栏中。

修复方案

只需修改注册接口的参数传递方式,将addAttribute替换为Spring MVC专为跨重定向传参设计的addFlashAttribute即可,无需调整成功页接口的逻辑:

@GetMapping(path = "/register", produces = MediaType.TEXT_HTML_VALUE)
public String register(@RequestParam("name") String name,
    RedirectAttributes redirectAttributes) {
    // call to service
    redirectAttributes.addFlashAttribute("name", name);
    return "redirect:/success";
}

实现原理

  • Flash属性会临时存储在服务端Session中,重定向跳转完成后会自动销毁,不会出现在URL中,也不需要你手动做Session的存取、清理操作。
  • 你现有的成功页使用@ModelAttribute("name")取参数的写法完全兼容Flash属性,不需要额外修改就能正常拿到用户名。

关于用请求体传递的说明

重定向本质是浏览器收到3xx状态码后发起的GET请求,GET请求本身没有请求体,因此无法通过请求体传递参数,Flash属性是当前场景下的最优解决方案。

额外说明

如果后续需要传递更复杂的自定义对象,也可以直接通过addFlashAttribute传递,不需要做序列化处理,Spring会自动完成存取逻辑。

内容的提问来源于stack exchange,提问作者rsp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 01:30:03