2016-04-22 11 views
0

をパラメータとして:私は私の要求/searchリダイレクト私はタイプ<code>Foo</code>で<code>ModelAttribute</code>を期待して怒鳴るように私のコントローラ持っ

のパラメータとして、私の豆 Fooをリダイレクトする別のコントローラでは

@RequestMapping(value="/search") 
public String search(ModelMap model, @ModelAttribute Foo foo, 
      HttpServletRequest request) { 

     ..... 
} 

@RequestMapping(value="/load_search") 
public String load_search(ModelMap model, @ModelAttribute Foo foo, 
      HttpServletRequest request) { 

    Foo foo = myService.getFoo(); 
    return "redirect:/search"; 
} 

どうすれば実現できますか?どのように/searchに私のbean fooをこのようなパラメータとしてリダイレクトする:/search?arg0=..&arg1=..arg0, arg1 , ...はbeanのプロパティですFoo

答えて

2

RedirectAttributesを使用できます。特別なパラメータで、データスローリダイレクトを渡すことができます。春によって自動的にモデルに追加されますfooターゲット方式で

@RequestMapping(value="/load_search") 
public String load_search(ModelMap model, @ModelAttribute Foo foo, 
      HttpServletRequest request, RedirectAttributes redirectAttrs) { 

    Foo foo = myService.getFoo(); 
    redirectAttrs.addFlashAttribute("foo", foo); 
    return "redirect:/search"; 
} 

:スニペットの例を考えてみましょう。あなたは@ModelAttributeパラメータにfooをマップする必要がある場合は、明示的に次の例のように属性の名前を指定する必要があります:あなたRedirectAttributesについて

@RequestMapping(value="/search") 
public String search(ModelMap model, @ModelAttribute("foo") Foo foo, 
      HttpServletRequest request) { 

    //here 'foo' will be added to 'model' and mapped to 'foo' 
    ..... 
} 

詳細は春documentationに見つけることができます。

+0

ありがとう、それは今働いています。私はargsが要求に表示されることを望みますが、それはおかしいです。 – Youssef

関連する問題