2011-01-12 7 views
5

staram się przyjść z dobrym konwencji zrobić żądania mapowania w mojej aplikacjiwiosny MVC żądania konwencje mapowania

teraz mam

RegistrationController { 
    @RequestMapping(value="/registerMerchant") 
    ... 
    @RequestMapping(value="/registerUser") 
    ... 
} 

ale to existing idealne, ponieważ patrząc na adres URL może nie wiedzieć, aby sprawdzić kod w kodzie RegistrationController.

Czy istnieje sposób mogę programmitically poprzedzić nazwę kontrolera z tych odwzorowań czyniąc je:

/registration/registerMerchant 
/registration/registerUser 

Odpowiedz

8

Nie programowo, ale ten rodzaj wzorca Widziałem pracy:

@Controller 
@RequestMapping(value="/registration/**") 
RegistrationController { 
    @RequestMapping(value="**/registerMerchant") 
    ... 
    @RequestMapping(value="**/registerUser") 
    ... 
} 

Powiedziawszy to, w przeszłości uważam, że jest to niezwykle trudne do wykonania w sposób, jakiego oczekiwałbym. Można go jednak wykonać, aby uzyskać .

+0

Znalazłeś powyższy wzór trudny w użyciu? czemu? także, nie jestem jeszcze żonaty z tą konwencją, czy możesz polecić inny rozsądny sposób tworzenia mapowań żądań? – mkoryak

+1

@mkoryak: Łatwo to zrozumieć, ale Spring MVC nie jest świetny, jeśli pozwala ci go zdiagnozować, nawet jeśli coś jest nie tak. to najlepszy wzór, jaki spotkałem. – skaffman

+1

Zgadzam się, że może to być trochę bolesne. Kluczem jest tutaj, po użyciu klasy @RequestMapping na poziomie klasy, upewniając się, że adnotacje na poziomie metod nie zaczynają się od /. – GaryF

4

Myślę, że **/na poziomie metody jest za duży hałas. Inaczej mówiąc, identyfikator URI mógłby być bardziej restrykcyjny, podobnie jak w przypadku większej liczby rzeczowników i mniejszej liczby czasowników.

@Controller 
@RequestMapping("/services") 
public class RegistrationController { 

    @RequestMapping(value = "/merchant/register") 
    public void processMerchantRegistration() { 

    } 

    @RequestMapping(value = "/user/register") 
    public void processUserRegistration() { 

    } 

} 
Powiązane problemy