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”相同的会话属性?