Tenemos un método Spring MVC Controller que sirve de servidor al patrón de url / hello / {userName}.
@RequestMapping("/hello/{userName}")
public ModelAndView helloWorld(@PathVariable("userName") String productId) {
String message = "HELLO"+userName;
return new ModelAndView("hellopage", "message", message);
}
Aquí cuando solicitamos / hello / Tom, hellopage.html se servirá con una URL en el navegador http://localhost:8080/myApp/hello/Tom
Necesitaríamos la URL para ser http://localhost:8080/myApp/Tom . Hay alguna forma de configurar la URL para que se muestre en el navegador cuando regrese del controlador.
Respuestas
1 para la respuesta № 1Claro que puedes hacer eso usando redirect
. Escribe dos controladores:
@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 para la respuesta № 2
Creo que también podrías usar tuckey url-rewrite para esto: http://tuckey.org/urlrewrite/
Esto permite la funcionalidad Apache mod_rewrite en Tomcat mediante el uso de un filtro, y no tendría que escribir dos controladores para todo.