Spring MVCのフラッシュ属性を利用するために以下のコントローラーを拡張するにはどうすればよいですか?ユースケースはコピー機能です。
POST / REQUEST / GETの実装:
- クライアントはUIの「コピー」ボタンをクリックします
- サーバーは応答「Location」ヘッダーを設定します
- クライアントは「path/to / page?copy」にリダイレクトします
- サーバーはModelAndViewを提供します
- クライアント(jQuery成功関数)はwindow.locationを設定します
FooControllerリダイレクトメソッド:
@RequestMapping(value = "{fooId}", method = POST, params = { "copy" })
@Transactional
@ResponseStatus(CREATED)
public void getCopyfoo(@PathVariable String fooId,
HttpServletResponse response, RedirectAttributes redirectAttrs) {
response.setHeader("Location", uriPath);
//no worky?!:
redirectAttrs.addFlashAttribute("barKey", "barValue");
}
FooController getメソッド:
@RequestMapping(value = "{fooId}", method = GET)
@Transactional(readOnly = true)
public ModelAndView findFooById(@PathVariable String fooId,
HttpServletRequest request){
Map<String, ?> map = RequestContextUtils.getInputFlashMap(request);
// map is empty...
return modelAndViewFromHelperMethod();
}