昨天我下载了新的Spring 3.1RC来测试Spring MVC中对flash范围变量的刚刚引入的支持。不幸的是,我无法使它工作...我有一个HTML表单,其中包含一些没有弹簧的复选框:窗体标签。事情是这样的:Spring MVC FlashMap和RedirectAttributes请求映射
<form action="/deleteaction" method="post">
<input type="checkbox" name="itemId" value="1" />
<input type="checkbox" name="itemId" value="2" />
<input type="submit" name="delete" value="Delete items" />
</form>
闪光灯范围支持之前,我的注解控制器看起来像:
@RequestMapping(value = "/deleteaction", method = RequestMethod.POST, params={"delete"})
public String deleteItems(@RequestParam(value="itemId", required=false) String itemId[]) {
或者,我可以使用的HttpServletRequest
代替@RequestParam
:
@RequestMapping(value = "/deleteaction", method = RequestMethod.POST, params={"delete"})
public String deleteItems(HttpServletRequest request) {
String itemIds[] = request.getParameterValues("itemId");
两个方法工作正常。如果我尝试添加RedirectAttributes
到方法的参数,Spring会抛出异常:
@RequestMapping(value = "/deleteaction", method = RequestMethod.POST, params={"delete"})
public String deleteItems(@RequestParam(value="itemId", required=false) String itemId[], RedirectAttributes redirectAttrs) {
登录:
Oct 16, 2011 11:20:37 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/App] threw
exception [Request processing failed; nested exception is
java.lang.IllegalArgumentException: argument type mismatch] with root cause
java.lang.IllegalArgumentException: argument type mismatch
我在做什么错?如何获得RedirectAttribues参数添加Flash范围变量的地方?