2016-04-15 1 views
1

私たちには、urlパターン/ hello/{userName}をサーバーするSpring MVC Controllerメソッドがあります。私たちは/ハロー/トムを要求したときにここで、hellopage.htmlがブラウザにURLをhttp://localhost:8080/myApp/hello/TomSpring MVCコントローラがURLをブラウザに表示するように設定できますか?

をserveredされます

@RequestMapping("/hello/{userName}") 
    public ModelAndView helloWorld(@PathVariable("userName") String productId) { 
     String message = "HELLO"+userName; 
     return new ModelAndView("hellopage", "message", message); 
    } 

我々はそこhttp://localhost:8080/myApp/Tom .Is私はURLを設定することができます任意の方法であるとURLが必要になりますコントローラーから戻ったときにブラウザーに表示されます。

答えて

1

確かにredirectを使用してください。二つのコントローラを書く:

@RequestMapping("/hello/{userName}") 
public string helloWorld(@PathVariable("userName") String userName, Model model) { 
    String message = "HELLO" + userName; 
    model.addAttribute("message", message); 
    return "redirect:" + userName; 
} 

@RequestMapping("/{userName}") 
public ModelAndView userHello((@ModelAttribute("message") String message)) {  
    return new ModelAndView("hellopage", "message", message); 
} 
+0

ありがとうございます。しかし、既に "/ {myString}"が異なる機能を提供するコントローラがあります。だから私は "/ {userName}"を再び使うことはできません。私の意図は、長いリクエストのマッピングがあるにもかかわらず、URLのクリーン/シンプルを示すことです。 –

+0

もちろん、 "/ {userName}"へのマッピングは適切ではありません。あなたが言ったように、それはあなたがこの意図で一般的に使用できる例でした。 –

0

私はあなたにも、このためにtuckeyのURL書き換えを使用することができると思う:http://tuckey.org/urlrewrite/

これは、フィルタを使用してTomcatの中にApacheのmod_rewriteの機能を可能にし、あなたがする必要はありませんすべてのために2つのコントローラを書きます。

関連する問題