【发布时间】:2012-08-21 23:37:27
【问题描述】:
如何增强下面的控制器以利用 Spring MVC 的 Flash 属性?用例是一个复制函数。
POST/REQUEST/GET 实施:
- 客户端点击 UI 中的“复制”按钮
- 服务器设置响应“Location”标头
- 客户端重定向到“path/to/page?copy”
- 服务器提供 ModelAndView
- client(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 获取方法:
@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();
}
【问题讨论】:
标签: java spring spring-mvc