2012-02-22 7 views
1

私はSpring Web MVCを使って "リダイレクト"するのは非常に混乱しています。春に新しいURLにリダイレクトする3.1 MVC?

私はURLにリダイレクトしたいのですが、brwserのアドレスバーが更新されません。新しいコントローラ(それが動作)に接頭辞を、しかし、アドレスバーがまだ前のURLを参照している:

まず、私は、コントローラに、私は「リダイレクト」を使用し、このコントローラでフォームを投稿してください。リダイレクトするコントローラについては

@RequestMapping(method=RequestMethod.POST) 
    public ModelAndView processSubmit(LoginFormBean formBean, BindingResult result, 
    Model model) { 
     System.out.println(formBean.getUsername()); 
    System.out.println(formBean.getPassword()); 
    return new ModelAndView("redirect:/index"); 
} 

:ここ

は、POSTリクエストを受信するtehのコントローラのための私のコードです

@Controller 
@RequestMapping("/index") 
public class IndexController { 

    @RequestMapping(method=RequestMethod.GET) 
    public String show() { 
     return "index"; 
    } 
} 

フォームが掲載される前に、フォーム、URLが「HTTPです:// localhost:7001/mobi " 投稿とリダイレクト後、URLは" http:// localhost:7001/mobi/index "ではなく" http:// localhost:7001/mobi "

任意のviがありますか?私のコードに修正が必要なエラーがありますか? コミュニティでこれを正しく実装するのに役立つことができますか?

+1

本質的に同じ2つのリンクはありませんか?テストとして、/ sthElseにリダイレクトしてみてください。それはうまくいくはずです。 – Stealth

答えて

0

私はあなたのコードに基づいて推測することができますのみ表示答えは、その疑わしいが、あなたは、インデックスへのリダイレクトだのModelAndViewを持っているということです。モデルとビューの構文をSpring 3で取り除くだけで、必要なページを直接返すことができます。ここで私はまた、投稿フォームを受け取り、別のコントローラにリダイレクト私自身のコードからの例です:

@RequestMapping(value = REQUEST_MAP, method = RequestMethod.POST) 
public String processForm(HttpServletRequest req, HttpServletResponse res, @ModelAttribute("myForm") myForm form, BindingResult result) 
     throws Exception { 
    //super cool form handling logic here! 
    return "redirect:/anotherControllerMappedURI"; 
} 

私もちょうど直接ビューページを返すために、文字列を返すことがありました。同様に、index.jspページにユーザーを送るために "index"を返します。次に、必要に応じてメタタグを使用してHTMLリダイレクトを行うことができます。

関連する問題