Forms HttpSessionRequiredException:会话属性';登记表';必需-在会话中找不到
我只有在某些情况下才会犯这个错误。我所编码的是一张登记表,这里是基本代码:Forms HttpSessionRequiredException:会话属性';登记表';必需-在会话中找不到,forms,spring,session,spring-mvc,Forms,Spring,Session,Spring Mvc,我只有在某些情况下才会犯这个错误。我所编码的是一张登记表,这里是基本代码: @Controller @SessionAttributes("registrationForm") @RequestMapping(value = "/registration") public class RegistrationController { @Autowired private RegistrationValidator registrationValidator; @Requ
@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
,整个注册过程就可以完美地工作。但是,当我首先调用映射到另一个控制器(即主页)中的页面时,我会得到标题中指定的错误
有人能帮我吗
谢谢。添加此选项解决了以下问题:
@ModelAttribute("registrationForm")
public RegistrationForm populateRegistrationForm()
{
return new RegistrationForm();
}
添加此选项解决了问题:
@ModelAttribute("registrationForm")
public RegistrationForm populateRegistrationForm()
{
return new RegistrationForm();
}
您使用的其他控制器(即主页)是否具有与“registrationForm”相同的会话属性?您使用的其他控制器(即主页)是否具有与“registrationForm”相同的会话属性?