/ / ¿Puede el controlador Spring MVC configurar la URL que se mostrará en el navegador? - spring-mvc, url-mapping

¿Puede el controlador Spring MVC configurar la URL para que se muestre en el navegador? - spring-mvc, url-mapping

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 № 1

Claro 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.