2013-09-28 5 views
13

Ich habe zwei Controller in meiner Anwendung; Einer ist userController, wo ich hinzufügen, löschen und aktualisieren Methoden habe; der andere ist studentController, wo ich auch Methoden hinzufügen, löschen und aktualisieren kann.So mappen Sie mehrere Controller in Spring MVC

Alle Zuordnungen sind in meinen Methoden identisch und verwenden @RequestMapping Annotation in beiden Controllern. Ich habe eine Verwirrung: Wenn wir die gleiche Aktion von der JSP übergeben, wie wird dann der Dispatcher den entsprechenden Controller finden? Wenn jemand dies mit einem Beispiel beschreiben könnte, wird es geschätzt.

+3

finden Sie unter here Fügen Sie Ihren Code hinzu. Wir brauchen etwas, von dem man arbeiten kann, sonst werden die Leute sagen, gehen Sie einfach und lesen Sie das Dokument. –

Antwort

32

Sie haben eine @RequestMapping Anmerkung auf Klassenebene setzen der Wert dieser Anmerkung wird das Präfix aller Anfragen zu diesem Controller kommen,
zum Beispiel:

Sie einen Benutzer Controller

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

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

und ein Student Controller

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

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

Beide Controller haben die gleiche mir thod, mit dem gleichen Wunsch Mapping aber Sie können sie über folgende uris zugreifen:

yourserver/user/edit 
yourserver/student/edit 

hth

+0

Kann ich jeden Controller in jedem Paket haben oder muss ich alle Controller im selben Paket haben? –

+1

@BrennoLeal Nein, es ist nicht wirklich notwendig, alle Controller unter demselben Paket zu definieren. Sie können es gemäß Ihrer Anforderung schreiben. Sie müssen nur die Controller mit ** Controller ** kommentieren, und Spring wird überall (in verschiedenen Paketen) von Ihren Controllern erfahren. – Rohit

0

Wir beliebige Anzahl von Controllern haben kann, wird die URL-Zuordnung entscheiden, welche Controller zu rufen ..

Ausführliche Informationen zum Spring MVC Multiple Controller Beispiel

Verwandte Themen