2013-09-28 18 views
13

Mam dwóch kontrolerów w mojej aplikacji; jeden to userController, gdzie mam dodawać, usuwać i aktualizować metody; drugi to studentController, gdzie mam również dodawać, usuwać i aktualizować metody.Jak mapować wiele kontrolerów w Spring MVC

Wszystkie odwzorowania są takie same w moich metodach z użyciem adnotacji @RequestMapping w obu kontrolerach. Mam jedno zamieszanie: jeśli przekazujemy tę samą akcję ze strony JSP, to w jaki sposób Dyspozytor znajdzie odpowiedni kontroler? Jeśli ktokolwiek mógłby opisać ten przykład, zostanie to docenione.

+3

Dodaj swój kod. Potrzebujemy czegoś do pracy, inaczej ludzie powiedzą, po prostu idź przeczytaj dokument. –

Odpowiedz

32

Musisz ustawić @RequestMapping adnotacji na poziomie klasy wartość tej adnotacji będzie prefiks wszystkich żądań przybywających do tego kontrolera,
na przykład:

można mieć kontroler użytkownika

@Controller 
@RequestMapping("user") 
public class UserController { 

    @RequestMapping("edit") 
    public ModelAndView edit(@RequestParam(value = "id", required = false) Long id, Map<String, Object> model) { 
     ... 
    } 
} 

i kontroler

@Controller 
@RequestMapping("student") 
public class StudentController { 

    @RequestMapping("edit") 
    public ModelAndView edit(@RequestParam(value = "id", required = false) Long id, Map<String, Object> model) { 
     ... 
    } 
} 

Zarówno kontroler uczeń mają taką samą mnie TZT, z samego mapowania żądanie, ale można uzyskać do nich dostęp za pośrednictwem następujących URI:

yourserver/user/edit 
yourserver/student/edit 

HTH

+0

Czy mogę mieć każdy kontroler w każdym pakiecie, czy też muszę mieć wszystkie kontrolery w tym samym pakiecie? –

+1

@BrennoLeal Nie, naprawdę nie jest konieczne definiowanie wszystkich kontrolerów pod tym samym pakietem. Możesz napisać to zgodnie z wymaganiami. Wystarczy dodać adnotację do kontrolerów za pomocą ** @ Controller **, a Spring dowie się o kontrolerach gdziekolwiek (w różnych pakietach). – Rohit

0

Możemy mieć dowolną liczbę kontrolerów, odwzorowanie URL zadecyduje, który kontroler zadzwonić ..

Proszę zapoznać się z here, aby zapoznać się ze szczegółowym przykładowym sterownikiem sprężynowym MVC

Powiązane problemy