有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

@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) 个答案