2010-02-10 26 views
5

Dal documento ufficiale di primavera, Spring 3 MVC sembra essere il supporto per la mappatura delle richieste di nidificazione. http://static.springsource.org/spring/docs/3.0.0.RELEASE/spring-framework-reference/pdf/spring-framework-reference.pdf Nella pagina 448, si ricordano:Spring 3 MVC Nesting RequestMapping

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

(ho eliminato qualche codice per migliorare la leggibilità) In tal caso, essi hanno affermato che la richiesta di /appoinments/new richiamerà il metodo getNewForm. Tuttavia, non funziona con il mio server Google App Engine locale (sebbene il server GAE funzioni correttamente con mappature che non sono nidificate). creo un controller esempio come di seguito:

@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; 
    } 
} 

ma una richiesta di /basic.do/hello provoca sempre errore 404.

Mi chiedo se qualcosa non va? Uso la modalità basata sull'annotazione con la richiesta *.do gestita dalla molla DispatchServlet.

risposta

13

provare questo

@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; 
    } 
} 

e provare con la basic/hello.do url

La ragione è che /basic.do/hello non sta per essere gestito dal servlet dispatcher in quanto non è un URL che termina in .DO

BTW, le estensioni .html sono più belle di .do, IMHO

+0

Sei un genio. Molte grazie. –

+3

E tu un esageratore :) – flybywire

+9

E nessuna estensione è più bella di .html – cdeszaq

Problemi correlati