Я получаю эту ошибку только в определенных ситуациях. То, что я кодирование является регистрационной формой, здесь основной код:HttpSessionRequiredException: требуется атрибут Session '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>
Очень странная проблема у меня есть, что если очистить данные сессии и I перейдите прямо к /registration
, весь процесс регистрации работает отлично. Но когда я вызываю страницу, которая сначала отображается на другом контроллере (т. Е. Домашняя страница), я получаю ошибку, указанную в заголовке.
Может ли кто-нибудь мне помочь?
спасибо.
делает другой контроллер вы используете (например, домашняя страница) имеют один и тот же атрибут сеанса, как «registrationForm»? – Nani
@Nani Нет, не так ли? – satoshi