【发布时间】:2011-01-06 20:12:01
【问题描述】:
我认为我对 spring mvc 中的会话注释有点困惑。
我有这样的代码(2 步表单示例,第 1 步用户数据,第 2 步地址)
@SessionAttributes({"user", "address"})
public class UserFormController {
@RequestMapping(method = RequestMethod.GET)
public ModelAndView show( ModelAndView mv ){
mv.addObject( new User() );
mv.addObject( new Address() );
mv.setViewName("user_add_page");
return mv;
}
@RequestMapping(method = RequestMethod.POST)
public String processForm( User user, BindingResult result ){
new UserValidator().validate(user, result);
if( result.hasErrors() ){
return "user_add_page";
}else{
return "redirect:/user_form/user_add_address";
}
// .........
}
现在,如果我在会话过期后提交页面,我会收到错误
org.springframework.web.HttpSessionRequiredException: 需要会话属性“用户”- 在会话中找不到
我该如何处理?我想要两个选项
- 如果在会话中丢失,我会创建空对象并接受提交
- 我通过一些消息转发回用户表单
我还处于学习Spring的早期阶段,很抱歉,如果它很明显,我看不到。
ps。这是在spring mvc中解决这种形式的好方法还是你会推荐不同的方法?
【问题讨论】:
标签: java spring spring-mvc session