0
仅在某些情况下出现此错误。什么我编码是一个登记表,这里是基本的代码:HttpSessionRequiredException:会话属性'registrationForm'必需 - 未在会话中找到
@Controller
@SessionAttributes("registrationForm")
@RequestMapping(value = "/registration")
public class RegistrationController
{
@Autowired
private RegistrationValidator registrationValidator;
@RequestMapping(method = RequestMethod.GET)
public String setupForm(Model model) throws Exception
{
return setupForm(model, new RegistrationForm());
}
@RequestMapping(method = RequestMethod.POST)
public String submitForm(@ModelAttribute("registrationForm") RegistrationForm registrationForm,
Model model,
BindingResult result,
SessionStatus sessionStatus) throws Exception
{
registrationValidator.validate(registrationForm, result);
if(result.hasErrors())
{
return setupForm(model, registrationForm);
}
else
{
// Do stuff
sessionStatus.setComplete();
return "redirect:success";
}
}
private String setupForm(Model model, RegistrationForm registrationForm) throws Exception
{
model.addAttribute("currentYear", Calendar.getInstance().get(Calendar.YEAR));
model.addAttribute("registrationForm", registrationForm);
return "registration";
}
形式:
<form:form method="POST" modelAttribute="registrationForm">
...
</form:form>
的很奇怪的问题我有,是,如果我清除会话数据和我直接去/registration
,整个注册过程完美。但是,当我调用首先映射到另一个控制器(即主页)的页面时,则会收到标题中指定的错误。
任何人都可以帮助我吗?
谢谢。
并使用其他控制器(即主页)具有相同的会话属性为“registrationForm”? – Nani 2012-02-14 15:48:02
@Nani不,应该吗? – satoshi 2012-02-14 15:51:16