我已经尝试过并尝试过,但无法弄清楚这里发生了什么。春天mvc 3 - SessionAttributes似乎并没有工作
- 我有使用@Controller
- 我也有@SessionAttributes
- 我处理GET请求注解,并把一个对象到模型中注释的一个简单的控制器。
- 当我从窗体中取回POST时,我只返回用户填充的内容。我没有找回完整的对象。
我是新来SessionAttributes,但我认为这保留了整个对象,当读取的对象返回使用@ModelAttribute方法,它会被合并的对象(即表单改变的对象)。但是,我没有看到这种行为。
任何帮助将不胜感激。
下面是从代码中的相关部分:
@Controller
@RequestMapping("/user")
@SessionAttributes("user")
public class UserController
{
// ...
@RequestMapping(value = "/{login}", method = RequestMethod.GET)
public String profile(Model model, @PathVariable("login") String login)
{
// ...
model.addAttribute("user", user);
// ...
}
@RequestMapping(value="/{login}", method = RequestMethod.POST)
public String saveProfile(@ModelAttribute("user") @Valid User user, BindingResult result, SessionStatus status)
{
if (result.hasErrors())
{
return "user/index";
}
// ...
status.setComplete();
return "redirect:/user/"+user.getLogin();
}
你看到任何东西,我可能错过了什么?我花了将近一天的时间,试图弄清楚这一点,但不能。任何帮助将非常感激。
更新:我找出了问题所在。下面发布答案。