springboot+thymeleaf 自动将user对象存入model
今天写一段注册代码的时候发现后端controller根本就没有将key=‘user’的值传入model,但是前端却能接受到${user},控制层代码如下:
@PostMapping("/login")
// @ResponseBody
public String login(User user, @RequestParam String code, @CookieValue("kaptchaCode") String kaptchaCode, Model model){
System.out.println("用户输入"+code);
// isBlank:为空、为空格符、为0 equalsIgnoreCase:忽视大小写
if(StringUtils.isBlank(kaptchaCode)||StringUtils.isBlank(code)||!kaptchaCode.equalsIgnoreCase(code)){
model.addAttribute("codeMsg", "验证码错误");
return "/site/login";
}
Map<String, Object> map = us.login(user);
if (map.containsKey("user")){//用户名密码都正确
User user1 = (User) map.get("user");
model.addAttribute("loginUser", user1);
System.out.println("当前登陆用户:"+map.get("user"));
return "/index";
}else{
model.addAttribute("usernameMsg", map.get("usernameMsg"));
model.addAttribute("passwordMsg", map.get("passwordMsg"));
return "/site/login";
}
}
原因是springboot自动帮我们将前端获取的user对象传入了model,而这就方便用户注册失败返回原页面时,之前输入的值还在。