ログインに成功した後、リクエストをリダイレクトしようとしています.2つのページが関係しています.loginとloginsuccessが一般的です.
ログイン マッピングのコントローラ クラスは次のとおりです。
@Controller
@SessionAttributes("userObj")
@RequestMapping("/user")
public class UserController {
@RequestMapping(value = "/login", method = RequestMethod.GET)
public ModelAndView initLoginView(ModelAndView mv) {
mv.addObject("userObj", new User());
mv.setViewName("user/login");
return mv;
}
@RequestMapping(value = "/login", method = RequestMethod.POST)
public ModelAndView loginUser(ModelAndView mv, @ModelAttribute("userObj") User user, BindingResult result, SessionStatus status) {
System.out.println(user.getUserName());
System.out.println(user.getPassword());
mv.addObject("userObj", user);
mv.setViewName("redirect:/user/loginSuccess");
return mv;
}
}
404、リソースが見つかりませんというエラーが表示されるので、POST メソッドから返された ModelAndView オブジェクトが原因であると思われるため、返される値を次のように変更しました。
mv.setViewName("user/loginSuccess");
return mv;
から
mv.setViewName("redirect:/user/loginSuccess");
return mv;
ページが正常に読み込まれます。フォームの重複送信を回避する「ポスト/リダイレクト/取得デザインパターン」を実現しようとしています。リダイレクトを使用する多くの例を見てい ます: 404 例外の問題が発生しました。助けてください。事前に感謝します。
EDITED : このmv.setViewName("user/loginSuccess");のような return ステートメントを作成すると、loginSucsess ページを更新すると、 この警告が表示されます