2016-04-15 15 views
1

Wir haben eine Spring MVC Controller-Methode, die das URL-Muster/Hallo/{UserName} Server.Kann Spring MVC Controller die URL im Browser angezeigt werden?

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

hier, wenn wir fordern/hallo/Tom, wird hellopage.html mit URL in der wir http://localhost:8080/myApp/hello/Tom

Browser servered würde die URL benötigen http://localhost:8080/myApp/Tom .ist es eine Möglichkeit, die ich die URL festlegen um beim Zurückkehren vom Controller im Browser angezeigt zu werden.

Antwort

1

Sicher können Sie das mit redirect tun. Schreiben Sie zwei Controller:

@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

Vielen Dank für Ihre Antwort. Aber es gibt bereits einen Controller mit "/ {myString}", der eine andere Funktionalität bietet. Daher kann ich "/ {userName}" nicht erneut verwenden. Meine Absicht ist es, die URL sauberer/einfacher zu zeigen, obwohl sie lange Anforderungszuordnungen haben. –

+0

Natürlich ist die Zuordnung zu "/ {userName}" nicht geeignet. und wie du gesagt hast, es war ein Beispiel, das du allgemein für diese Absicht verwenden kannst. –

0

Ich glaube, Sie auch Tuckey url-rewrite für diese verwenden: http://tuckey.org/urlrewrite/

Dies ermöglicht Apache mod_rewrite Funktionalität in Tomcat durch die Verwendung eines Filters, und Sie würden nicht haben schreibe zwei Controller für alles.

Verwandte Themen