2010-02-10 17 views
5

A partir del documento oficial de Spring, Spring 3 MVC parece ser el mapeo de solicitud de anidación de soporte. http://static.springsource.org/spring/docs/3.0.0.RELEASE/spring-framework-reference/pdf/spring-framework-reference.pdf En la página 448, se mencionan:Spring 3 MVC Nesting RequestMapping

@Controller 
@RequestMapping("/appointments") 
public class AppointmentsController { 
//... 
    @RequestMapping(value="/new", method = RequestMethod.GET) 
    public AppointmentForm getNewForm() { 
     return new AppointmentForm(); 
    } 
//... 
} 

(he eliminado algo de código para facilitar la lectura) En tal caso, alegaron que una solicitud para /appoinments/new invocará el método getNewForm. Sin embargo, no funciona con mi servidor local de Google App Engine (aunque el servidor GAE funciona bien con la asignación que no está anidada). creo un controlador de ejemplo, como a continuación:

@Controller 
@RequestMapping("/basic.do") 
public class HelloWorldController { 
    @RequestMapping(value="/hello", method=RequestMethod.GET) 
    public ModelAndView helloWorld() { 
     ModelAndView mav = new ModelAndView(); 
     mav.setViewName("basic/helloWorld"); 
     mav.addObject("message", "Hello World From Phuong!"); 
     return mav; 
    } 
} 

pero una solicitud a /basic.do/hello siempre resulta en error 404.

¿Se pregunta si hay algo mal allí? Estoy usando el modo de anotación con *.do solicitud manejada por la primavera DispatchServlet.

Respuesta

13

probar esto

@Controller 
@RequestMapping("/basic") 
public class HelloWorldController { 
    @RequestMapping(value="/hello.do", method=RequestMethod.GET) 
    public ModelAndView helloWorld() { 
     ModelAndView mav = new ModelAndView(); 
     mav.setViewName("basic/helloWorld"); 
     mav.addObject("message", "Hello World From Phuong!"); 
     return mav; 
    } 
} 

y tratar con el basic/hello.do url

La razón es que /basic.do/hello no va a ser manejado por el servlet despachador, ya que no es una dirección URL que termina en .do

Por cierto, las extensiones .html son más bonitas que .do, en mi humilde opinión

+0

Eres un genio. Muchas gracias. –

+3

Y usted un exagerador :) – flybywire

+9

Y ninguna extensión es mejor que .html – cdeszaq

Cuestiones relacionadas