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

Spring Boot重定向时Model参数丢失问题求助

Spring Boot重定向时Model参数丢失问题求助

各位大佬好,我遇到一个Spring Boot重定向的参数传递问题,想请教一下:

我写了两个Controller方法,第一个doLogin是POST请求,用来处理登录验证,验证通过后想重定向到第二个getAccountFragment方法,同时把logged和username这两个属性存在Model里。但奇怪的是,第二个方法里能读到logged是True,却读不到username(打印出来是null),实在搞不懂哪里出问题了,麻烦帮忙看看!

我的Controller代码如下:

@RequestMapping(value = "/login", method = RequestMethod.POST)
public String doLogin(Model model, @RequestParam("username") String username, @RequestParam("password") String password, RedirectAttributes re) throws IOException {

    boolean logged = elasticSearchConnector.checkCredentials(username, password, context);

    model.addAttribute("logged", logged);
    System.out.println(model.getAttribute("logged"));  // 这里打印是True

    if(logged) {
        model.addAttribute("username", username);
        System.out.println(model.getAttribute("username"));  // 这里打印是amedeo
        return "redirect:/getAccountFragment";
    } else {
        model.addAttribute("loginError", "Incorrect Login Credentials");
        return String.format("fragments/login-fragment :: content(url='%s')", "/?lang=en");
    }
}

@RequestMapping(value = "/getAccountFragment", method = RequestMethod.GET)
public String getAccountFragment(Model model) throws IOException, ParseException {

    System.out.println(model.getAttribute("logged"));  // 这里打印是True
    if(!model.containsAttribute("logged")) {
        return String.format("fragments/login-fragment :: content(url='%s')", "/?lang=en");
    } else {
        if(!(boolean)model.getAttribute("logged")) {
            return String.format("fragments/login-fragment :: content(url='%s')", "/?lang=en");
        } else {
            String username = (String) model.getAttribute("username");
            System.out.println(model.getAttribute("username"));  // 这里打印是null
        }
    }
}

我现在的疑惑点:

  • 为什么logged能在重定向后的方法里读到,username却不行?
  • 是不是我传递参数的方式不对?应该用什么方法在重定向时正确传递这两个参数?

备注:内容来源于stack exchange,提问作者Amedeo Pachera

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 11:08:14