4

昨日、新しいSpring 3.1RCをダウンロードして、SpringMVCで導入されたばかりのフラッシュスコープ変数のサポートをテストしました。残念ながら、私はそれを機能させることができませんでした...

spring:formsタグのないいくつかのチェックボックスを含むHTMLフォームがあります。このようなもの:

<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>

Flashスコープがサポートされる前は、注釈付きコントローラーは次のようになりました。

@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パラメーターを取得するにはどうすればよいですか?

4

1 に答える 1

4

新しいRedirectAttributes、古いDefaultAnnotationHandlerMappingAnnotationMethodHandlerAdapterを使用するにはAnnotationMethodHandlerExceptionResolver、で置き換える必要がありますdispatcher-servlet.xml

1つのチャンスは<mvc:annotation-driven/>、Spring 3.1で新しいクラスRequestMappingHandlerMappingを構成し、古いクラスRequestMappingHandlerAdapterを置き換えるを使用することです。ExceptionHandlerExceptionResolver

それ以外の場合は、新しいハンドラークラスをで明示的に構成する必要がありますdispatcher-servlet.xml

ここにいくつかの追加情報:http://forum.springsource.org/showthread.php?115976-Spring-MVC-FlashMap-and-RedirectAttributes-request-mapping

于 2011-10-18T06:59:55.893 に答える