MVC -Annotationsentwicklung bedeutet eine Klassenentwicklung, die auf Anmerkungen basiert. Für jeden definierten Prozessor müssen sich nicht in der XML registrieren.
Die Registrierung wird durch Anmerkungen und Methoden im Code abgeschlossen.
Definieren Sie den Prozessor
@Controller: Die aktuelle Klasse ist ein Prozessor
@RequestMapping: Die aktuelle Methode ist eine Prozessormethode, der Methodenname ist willkürlich und die Anforderung wird verarbeitet und darauf reagiert.
@Controller Public Class MyController {@RequestMapping (value = "/hello.do") public modelAndView docontrol (httpServletRequest -Anforderung, httpServletResponse -Antwort) {modelandView mv = new ModelAndView (); mv.addObject ("meldung", "Ausführungsmethode"); Mv.SetViewName ("Willkommen, Neil!"); MV zurückgeben; }} RequestMapping kann beispielsweise eingeschränkt werden
Kopieren Sie den Code wie folgt: @RequestMapping (value = "/hello.do", params = {"name = neil", "! Age"}, method = requestMethod.post)
method = requestMethod.post Limited Submission Type to Post
Params = {"name = neil", "! AGE"} Der Parametername muss in der begrenzten Anforderung übertragen werden, der Wert ist Neil und das Parameteralter kann nicht getragen werden.
Anforderungsparameter akzeptieren
Wenn der Parametername in der Anforderung mit dem Parameternamen der Prozessormethode übereinstimmt, kann er direkt erhalten werden.
@RequestMapping (value = "/hello.do") public modelAndView doconTroll (String -Name, int age) {System.out.println ("Name:" + name + ", Alter:" + Alter); ModelAndView mv = new ModelAndView (); MV zurückgeben; }Wenn die Parameternamen inkonsistent sind, müssen Sie ihn über @RequestParam finden.
@RequestParam hat drei Eigenschaften
Die Codekopie lautet wie folgt: DoconTroll (@RequestParam (name = "userername") String -Name, @RequestParam (name = "userage") int age)
Pfadvariable @PathVariable
Die Parameter in der Prozessormethode können aus den von der Anforderung oder von Variablen im URI, d. H. Pfadvariablen, übertragenen Parameter stammen.
Wie die oben genannten normalen Parameter, wenn der Name der Pfadvariablen mit dem Parameternamen, der seinen Wert empfängt, nicht im Widerspruch steht, müssen Sie den Namen der Pfadvariablen über die Parameter angeben.
Beachten Sie, wie unten gezeigt, Benutzername und Name, Alter und Alter.
@RequestMapping (value = "/{userername}/{ay} /hello.do") public modelAndView docontroll (@PathVariable ("Benutzername") String -Name, @RequestParam int AGE) {System.out.println ("Name:" + name + ", ay:" + ay); ModelAndView mv = new ModelAndView (); MV zurückgeben; }Prozessormethode gibt Wert zurück
Die folgenden vier häufig verwendeten Prozessoren mit @Controller -Annotation sind:
1, kehren Sie zu ModelAndview zurück
Nach Abschluss der Prozessormethode muss sie zu anderen Ressourcen springen und Daten zwischen den umgeleiteten Ressourcen übergeben und dann ModelAndView zurückgeben.
public modelAndView docontroll () {modelAndView modelAndView = new ModelAndView (); // Das bestandene DatenmodellandView.addObject ("Name", "Neil"); modelAndView.setViewName ("/user.do"); return modelAndview; }2, kehren Sie zur Leere zurück
Nachdem die Anfrage bearbeitet wurde, muss nicht springen, und der Prozessor kann wieder auf Leere gebracht werden, wie z.
Wenn Sie springen müssen, können Sie auch das Servletapi verwenden, um SendRect oder vorwärts zu bringen.
3, Rückgabeobjekt
Der Prozessor kann ein Objektobjekt zurückgeben, das nicht als logische Ansicht angezeigt wird, sondern verwendet wird, um Daten direkt auf der Seite anzuzeigen.
Wenn Sie ein Objektobjekt zurückgeben, müssen Sie die @ResponseBody -Annotation verwenden, um die konvertierten JSON -Daten in das Antwortgewicht zu setzen.
@RequestMapping (value = "/hello.do") @ResponseBody public modelAndView docontroll () {return New Student ("Neil", 998); } Das Front-End erhält Daten
Fr.ajax ({url: "hello.do", vollständig: function (data) {alert (data.name + "" + data.age);}})In ähnlicher Weise können Sie die Sammlungsliste, Karte usw. zurückgeben.
@RequestMapping (value = "/hello.do") @ResponseBody public modelAndView docontroll () {list <Sudest> list = new ArrayList <Student> (); list.add (neuer Schüler ("a", 11)); list.add (neuer Schüler ("B", 22)); list.add (neuer Schüler ("C", 33)); Rückgabeliste; } Fr.ajax ({url: "hello.do", vollständige: function (data) {$ (data) .each (function (index)) {alert (data [index] .name + data [index] .age);}}})4, kehren Sie zur String zurück
Es kann drei Szenarien für die Rückgabe einer Zeichenfolge geben:
Logischer Ansichtsname
Die vom Prozessor zurückgegebene Zeichenfolge kann den Namen der logischen Ansicht angeben und durch die Ansichtsparserauflösung in eine physische Ansichtsadresse umwandeln.
Der endgültige reale Zugriffspfad = "Präfix" + logische Ansicht Name + "Suffix"
Wenn Sie das Vorsuffix nicht angeben, können Sie auch den Namen der physischen Ansicht direkt zurückgeben, wie z.
return "/web-inf/admin/welcome.jsp"
Umleitung umleiten
return "recirect: /admin/next.action";
Es entspricht der Antwort. Sendredirect (). Nach dem Weiterleiten wird die Adressleiste des Browsers zur weitergeleiteten Adresse.
Da eine neue Anfrage initiiert wird, können die ursprünglichen Parameter bei der Weiterleitung nicht an die nächste URL übergeben werden.
Wenn Sie Parameter übergeben möchten, können Sie Parameter nach URL & a = 1 & b = 2 spleißen
Weiterleiten
zurück "vorwärts: /admin/forward.action";
Es ist gleichbedeutend mit Request. Nach dem Weiterleiten ist die Browseradressleiste immer noch die ursprüngliche Adresse.
Die Weiterleitung führt nicht die neue Anfrage und Antwort aus, sondern teilt eine Anfrage und Antwort mit der Anfrage vor dem Weiterleiten.
Parameter können direkt vor der Weiterleitung wiederverwendet werden.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.