@java/spring中的SessionAttribute是否丢失数据?
嗨,我有一个问题,我的项目(小博客网站),我不能处理一段时间
那是我的登录控制器 '''
@Controller
@SessionAttributes("currentUser")
public class LoginController {
@Autowired
UserService userService;
@ModelAttribute("currentUser")
public User setUpUserForm() {
return new User();
}
@RequestMapping(value="/login",method = RequestMethod.GET)
public String showLoginPage() {
return "loginsite";
}
@RequestMapping(value="/login",method=RequestMethod.POST)
public String userLogin(@ModelAttribute("currentUser") User user,ModelMap model,@RequestParam String login,@RequestParam String password) {
if(userService.checkUserLoginData(login, password)==true) {
user=userService.getUserByLogin(login);
System.out.println("Logged in user");
System.out.println("ID:"+user.getUserId());
System.out.println("Login:"+user.getLogin());
System.out.println("Password:"+user.getPassword());
System.out.println("Email:"+user.getEmail());
return "welcomesite";
}else {
model.put("message", "Check your login and password ! ");
return "loginsite";
}
}
}
'''
那是我的用户控制器
'''
@Controller
public class UserController {
@Autowired
UserService userService;
@RequestMapping(value="/",method = RequestMethod.GET)
public String posts() {
return "redirect:/posts";
}
@RequestMapping(value="/createaccount",method = RequestMethod.GET)
public String showRegisterPage() {
return "registrationpage";
}
@RequestMapping(value="/createaccount",method = RequestMethod.POST)
public String createAccount(ModelMap model,@RequestParam String login,@RequestParam String password,@RequestParam String email) {
userService.addUser(new User(login,password,email));
return "redirect:/login";
}
@RequestMapping(value="/login/accountsettings",method = RequestMethod.GET)
public String showAccountSettings(@SessionAttribute("currentUser") User user) {
System.out.println("amil"+user.getEmail());
return "userSettings";
}
@RequestMapping(params="update",value="/login/accountsettings",method = RequestMethod.POST)
public String updateAccountSettings(@SessionAttribute("currentUser") User user,@RequestParam String login,@RequestParam String password,@RequestParam String email) {
user=userService.updateUser(new User(login,password,email));
return "redirect:/login";
}
@RequestMapping(params="delete",value="/login/accountsettings",method = RequestMethod.POST)
public String deleteAccount(@RequestParam String login) {
userService.deleteUser(login);
return "redirect:/posts";
}
'''
我想在登录到下一页进行ex/login/accountsettings后传递用户数据,甚至让用户id使用其id添加文章,作为该文章的创建者。登录everythink后,我有完整的用户数据,但当我尝试将它们输入/login/accountsettings时,用户为空(满是空值)。我做错了什么
输出: enter image description here
或者我有一个问题,是否有其他更好的方法在注销之前传输用户数据? 谢谢你的帮助
共 (0) 个答案