2010-03-25 20 views
184

¿Es posible utilizar varias anotaciones de primavera @RequestMapping en un método? Me gusta:Anotaciones de Spring Spring @RequestMapping

@RequestMapping("/") 
@RequestMapping("") 
@RequestMapping("/welcome") 
public String welcomeHandler(){ 
return("welcome"); 
} 

Respuesta

343

@RequestMapping tiene un parámetro String[] valor, por lo que debería ser capaz de especificar varios valores de la siguiente manera:

@RequestMapping(value={"", "/", "welcome"})

+1

Dicho esto, tengo problemas para que los valores "" o "/" funcionen realmente en mi aplicación. ellos trabajan para ti? –

+0

¿Hay alguna forma de asociar diferentes vistas de éxito y vistas de formulario con cada URL de solicitud utilizando varias anotaciones? –

+0

@EdBrannin Necesito muchos para usar, personalizado, encabezado, consume, params, etc. – deFreitas

12

No es necesario. La anotación RequestMapping admite comodines y rutas estilo hormigas. También parece que solo desea una vista predeterminada, por lo que puede poner

<mvc:view-controller path="/" view-name="welcome"/> 

en su archivo de configuración. Eso enviará todas las solicitudes a la raíz a la vista de bienvenida.

+0

¿Se supone que hay algo entre esas dos líneas? Estoy usando FreeMarkerViewResolver, así que tendría que ir por este camino ... Bueno, creo que podría crear múltiples ViewResolver. – wuntee

+2

No proporciona la flexibilidad que proporcionarían las anotaciones de RequestMapping múltiples. Por ejemplo, si quiero que un método sea compatible con el valor "/ a" con POST o el valor "/ b" con GET. Por supuesto, la solución es bastante sencilla (refactorizando la funcionalidad en un tercer método), pero solo diciendo que sería útil. – simon

19

Desde mi prueba (primavera 3.0.5), @RequestMapping(value={"", "/"}) - sólo "/" obras, "" hace no. Sin embargo, descubrí que esto funciona: @RequestMapping(value={"/", " * "}), el " * " coincide con cualquier cosa, por lo que será el controlador predeterminado en caso de que no haya otros.

Cuestiones relacionadas