SpringMVCでModelとViewを用いたリダイレクトの実装方法
Spring MVCではModelAndViewオブジェクトでリダイレクトを実現できます。
ModelAndViewオブジェクトを使用したリダイレクトをする手順は、以下の通りです。
- ModelAndView
ModelAndView modelAndView = new ModelAndView("redirect:/redirectUrl");
- フラッシュ属性を追加する
modelAndView.addFlashAttribute("key", "value");
- ModelAndView
return modelAndView;
ネイティブな日本語で以下のように言い換えるとよいです。
完全なサンプルコードは次のとおりです。
@Controller
public class MyController {
@RequestMapping("/redirect")
public ModelAndView redirect() {
ModelAndView modelAndView = new ModelAndView("redirect:/redirectUrl");
modelAndView.addFlashAttribute("key", "value");
return modelAndView;
}
@RequestMapping("/redirectUrl")
public ModelAndView redirectUrl(@ModelAttribute("key") String value) {
ModelAndView modelAndView = new ModelAndView("redirectPage");
modelAndView.addObject("value", value);
return modelAndView;
}
}
上記の例では、redirect関数がredirectUrl関数をリダイレクトする。redirectUrl関数はリダイレクトの要求を受け取ると、セッションに登録されたデータを回収し、redirectPageビューに引き渡す。