解决重定向参数获取问题

需求场景:当用户登陆时,输入名错误的用户名和密码,需要在登陆页显示提示信息。

第一种方法:登陆不成功时,直接 return 到 页面,通过 thymeleaf 可以直接获取到 Map中到错误信息

第二种方法:使用 RedirectAttributes

attributes.addFlashAttribute("loginFailMsg","1001:用户名与密码不匹配,请重新输入~~");
attributes.addAttribute("test","test");

运行结果如下图:使用addAttribute()方法,会将参数拼装到url中,这样会暴露参数名和参数值,因此不建议采用该方法

使用addFlashAttribute()可以隐藏参数传递

 使用addFlashAttribute() 后,参数获取,需要在 Controller 方法中增加 HttpServletRequest 参数;RequestContextUtils.getInputFlashMap 获取到FlashMap 是 final类型不可修改。

String loginFailMsg = (String) RequestContextUtils.getInputFlashMap(request).get("loginFailMsg");

猜你喜欢

转载自www.cnblogs.com/KennyWang0314/p/12325450.html
今日推荐