2010-02-10 5 views
5

Von Frühling Offizielles Dokument, Frühling 3 MVC aussehen, Unterstützung Verschachtelung Request Mapping werden. http://static.springsource.org/spring/docs/3.0.0.RELEASE/spring-framework-reference/pdf/spring-framework-reference.pdf In Seite 448, sie erwähnt:Frühling 3 MVC Nesting RequestMapping

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

(ich einige Code zur besseren Lesbarkeit werden eliminiert) In einem solchen Fall behaupteten sie, dass ein Antrag auf /appoinments/new die getNewForm Methode aufrufen. Es funktioniert jedoch nicht mit meinem lokalen Google App Engine-Server (obwohl der GAE-Server problemlos mit der Zuordnung funktioniert, die nicht verschachtelt ist). Ich erstelle ein Beispiel Controller wie unten:

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

aber eine Anfrage an /basic.do/hello führt immer zu 404 Fehler.

Frage mich, ob da was falsch ist? Ich verwende Annotation-gesteuerten Modus mit *.do Anfrage von Frühjahr DispatchServlet behandelt.

Antwort

13

versuchen diese

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

und versuchen, mit dem basic/hello.do url

Der Grund dafür ist, dass /basic.do/hello nicht von Ihrem Dispatcher Servlet behandelt werde, da es nicht eine URL, die in .DO

endet

BTW, .html Erweiterungen sind netter als .do, IMHO

+0

Sie sind ein Genie. Danke vielmals. –

+3

Und du ein Übertreiber :) – flybywire

+9

Und keine Erweiterung ist netter als .html – cdeszaq