我已經嘗試過並嘗試過,但無法弄清楚這裏發生了什麼。春天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();
}
你看到任何東西,我可能錯過了什麼?我花了將近一天的時間,試圖弄清楚這一點,但不能。任何幫助將非常感激。
更新:我找出了問題所在。下面發佈答案。