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
@ナニいいえ、そうでしょうか? – satoshi