2012-10-05 9 views
13

że udział w projekcie, gdzie znaleźć mieszankę:Skorzystaj z wartości slash w wartości dla @RequestMapping lub nie. Potrzebujesz oficjalnych dokumentów lub źródła Spring?

 
@RequestMapping(value = "events/..."); 
@RequestMapping(value = "/events/..."); 

(z lub bez przed cięciem poziomie metody z nich).

ja wykonać wyszukiwanie:

 
site:http://static.springsource.org/spring/docs/3.1.x slash 

i czytają te linki:

Jednak żadne z tych źródeł nie odpowiada na pytanie, dlaczego dozwolone jest pominięcie ukośnika. Oficjalne dokumenty Springa zawsze pokazywały przykłady z ukośnikami ...

Potrzebuję punktu do oficjalnych dokumentów lub źródeł wiosennych.

Odpowiedz

26

Nie ma znaczenia: Jeśli ścieżka nie rozpoczyna się od /, to Spring (DefaultAnnotationHandlerMapping) doda ją.

patrz metoda String[] determineUrlsForHandler(String beanName) klasy DefaultAnnotationHandlerMapping linia 122 (Wiosna 3.1.2) (to jest na poziomie klasy)

String[] methodLevelPatterns = determineUrlsForHandlerMethods(handlerType, true); 
for (String typeLevelPattern : typeLevelPatterns) { 
    if (!typeLevelPattern.startsWith("/")) { 
      typeLevelPattern = "/" + typeLevelPattern; 
    } 

patrz metoda String[] determineUrlsForHandler(Class<?> handlerType, final boolean hasTypeLevelMapping)) klasy DefaultAnnotationHandlerMapping linia 182 (Wiosna 3.1.2) (to jest dla poziomu metody)

String[] mappedPatterns = mapping.value(); 
if (mappedPatterns.length > 0) { 
for (String mappedPattern : mappedPatterns) { 
    if (!hasTypeLevelMapping && !mappedPattern.startsWith("/")) { 
     mappedPattern = "/" + mappedPattern; 
    } 
+0

Świetne odpowiedzi! +100500. – gavenkoa

Powiązane problemy