我想使用用户发送的名称设置会话属性。用户将首先登录。当他登录时,我希望他的用户名将设置为会话属性。
我该怎么办? 这是我的控制器
@GetMapping("/login")
public String login()
{
return "Login";
}
@PostMapping("/loginCheck")
public String checkLogin(@ModelAttribute("users") Users user) {
if(userService.checkUser(user)) {
return "redirect:/"+user.getUsername()+"/";
}
else
return "Login";
}
@PostMapping("/signup")
public ModelAndView createuser(@ModelAttribute("users") Users user) {
if(userService.checkUser(user)) {
return new ModelAndView("Login");
}
else {
userService.adduser(user);
return new ModelAndView("Login");
}
}
现在我如何将用户名设置为我在user.getUsername()
中获得的会话答案 0 :(得分:1)
在SpringMVC中,您可以通过将HttpSession作为参数添加到方法中来自动注入HttpSession。所以,你登录可能类似于:
@GetMapping("/login")
public String login(@ModelAttribute("users") Users user, HttpSession session)
{
if(userService.authUser(user)) { //Made this method up
session.setAttribute("username", user.getUsername());
view.setViewName("homepage"); //Made up view
}
else{
return new ModelAndView("Login");
}
}
答案 1 :(得分:0)
@Autowired
ObjectFactory<HttpSession> httpSessionFactory;
.
.
.
HttpSession session = httpSessionFactory.getObject();