这是我的代码示例...(请原谅我的格式不正确...)
@控制器
@SessionAttributes({“用户”})
@RequestMapping("/login")
公共类 LoginController 扩展 SuperController {
@RequestMapping(value = "/submitLogin", method = RequestMethod.POST)
public ModelAndView login(
@Valid @ModelAttribute("loginForm") LoginForm loginForm,
BindingResult bindingResult, HttpSession session, Model model) {
// Adding user object to session after login.
modelAndView.addObject("user", user );
@控制器
@SessionAttributes({ "suser" })
@RequestMapping("/user")
公共类 UserController 扩展 SuperController{
@RequestMapping(value = "/createTeamMember", method = RequestMethod.POST)
public ModelAndView createTeamMember(@Valid @ModelAttribute("userForm"), MemberUserForm memberUserForm, BindingResult bindingResult, @ModelAttribute("user") User user) {
memberUserForm.getFirstName(); // 新团队成员的名字。
user.getFirstName(); // 登录用户的名字(与上面不同)。
由于我使用的是@sessionAttributes,所以在它调用 createTeamMember 之前,user.firstName 会在 spring 之前被 memberUserForm.getFirstName() 覆盖,而我不打算这样做......