2010-02-10 21 views
5

Bahar Resmi Belgesinden, Bahar 3 MVC destek yuvalama İstek Eşleme olarak görünüyor. sayfa 448 yılında http://static.springsource.org/spring/docs/3.0.0.RELEASE/spring-framework-reference/pdf/spring-framework-reference.pdf , bunlar söz:Yay 3 MVC Nesting RequestMapping

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

(ben okunabilirlik için bazı kod ortadan kaldırmıştır) Bu durumda , onlar /appoinments/new bir istek getNewForm yöntemi çağırmak olacağını iddia etti. Ancak, yerel Google App Engine sunucumla çalışmaz (GAE sunucusu, iç içe olmayan eşleme ile gayet iyi çalışıyor olsa da). Ben bir örnek kontrolörü aşağıda gibi oluşturun:

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

ama /basic.do/hello bir istek her zaman 404 hatayla sonuçlanır.

Sorun var mı? DispatchServlet yayı tarafından işlenen *.do isteği ile ek açıklama tabanlı mod kullanıyorum.

cevap

13

bu

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

denemek ve basic/hello.do url ile deneyin

nedeni .do

biten bir URL değil olarak /basic.do/hello dağıtıcınız servlet tarafından ele alınması için gitmiyorum olmasıdır

BTW, .html uzantıları, .do, IMHO

+0

'dan daha güzel. Siz bir dehasınız. Çok teşekkürler. –

+3

Ve siz bir abartı :) – flybywire

+9

Ve hiçbir uzantı daha hoş değil. Html – cdeszaq