RequestMapping Annotation -Anweisungen
Die Funktion der @RequestMapping -Annotation -Karten -Webanforderungen an bestimmte Handlerklassen und/oder Handler -Methoden. Diese Annotation kann für eine Klasse oder Methode verwendet werden und gibt den Anforderungspfad über den Eigenschaftswert an. Wird in der Controller-Klasse verwendet, um vorläufige URL-Anforderungszuordnungsinformationen bereitzustellen. In der Controller -Methode wird eine detaillierte URL -Karte bereitgestellt. Wenn die Controller -Klasse keine RequestMapping -Annotation hat, ist die URL der Annotationsmarke für die Methode relativ zum Stammverzeichnis der Webanwendung.
Die @RequestMapping -Annotation enthält die folgenden Eigenschaften:
Name: Wird verwendet, um den MakPer -Namen anzugeben
Wert: Wird verwendet, um den Zuordnungspfad anzugeben, wie der Pfad
Pfad: Wird verwendet, um den Zuordnungspfad, der gleiche Wert anzugeben
Methode: Wird verwendet, um den Anforderungsart anzugeben: Get, Post, Kopf, Optionen, Put, Patch, Löschen, Trace
Parameter: Geben Sie die angeforderten Parameter an
Header: Geben Sie den Anforderungsheader an, Quellcode Beispiel: RequestMapping (value = "/there", Headers = "Content-Type = text/*").
Verbraucher: Legt den Inhaltstyp (Inhaltstyp) an, der die Anforderungsübermittlung wie Anwendung/JSON, Text/HTML übernimmt. Die Anfrage wird nur zugeordnet, wenn der Inhaltstyp einen dieser Medientypen entspricht.
Erzeugt: Geben Sie den von der Anforderung zurückgegebenen Inhaltstyp an, z.
Geben Sie den Zuordnungspfad über das Wertattribut an
Verwenden Sie RequestMapping -Annotation in der Controller -Klasse
@Controller @RequestMapping ("Order") öffentliche Klasse OrderInfoConTroller {// Beispiel 1 @RequestMapping ("orderInfo") public modelAndView orderInfo1 () {Neue modelAndView zurückgeben ("Order/Info", "Nachricht", "orderInfo"); }}Die Annotationsanforderung ("Order") in der OrderController -Klasse hinzugefügt, wobei angegeben ist, dass alle Anfragen für Paare mit "Root/Order" beginnen müssen.
Der Anforderungspfad ist zum Beispiel 1: http: // localhost: 8080/springmvcNext/order/orderInfo
Beispiel 1 Wenn @RequestMapping ("Order") auf dem Controller kommentiert wird, lautet der entsprechende Anforderungspfad: http: // localhost: 8080/springMvcNext/orderInfo
Verwenden von RequestMapping -Annotation auf der Controller -Methode
1. Häufiger Grundnutzung
@Controller @RequestMapping ("Order") öffentliche Klasse OrderInfoConTroller {// Beispiel 1 @RequestMapping ("orderInfo") public modelAndView orderInfo1 () {Neue modelAndView zurückgeben ("Order/Info", "Nachricht", "orderInfo"); } // Beispiel 2: Behandeln Sie mehrere URL -Mappings @RequestMapping ({"info", "index"}) // oder @RequestMapping (value = {"info", "index"}) public modelAndView orderfo2 () {neuer ModelandView ("Order/Info/Info", "Message", "Message", "Message", "orderfo2"); } // Beispiel 3 @RequestMapping public modelAndView orderInfo3 () {Neue modelAndView zurückgeben ("order/info", "meldung", "orderInfo3"); }}RequestMapping Konfiguriert nur das Wert -Attribut. Wenn kein anderes Attribut angezeigt wird, wird der Wert weggelassen. Füllen Sie einfach die URL -Mapping -Informationen direkt aus. Wenn andere Attribute angegeben werden, muss das Wertschild eindeutig ausgefüllt werden.
Der Zugriffspfad von Beispiel 1 oben ist: http: // localhost: 8080/springmvcNext/order/orderInfo
Beispiel 2: Die Werteigenschaft in der RequestMapping -Schnittstelle ist ein Array, und alle Zugriffswege werden auch unterstützt, um ein Array -Beispiel zu bestehen. Beispiel 2: http: // localhost: 8080/springMvcNext/order/index oder http: // localhost: 8080/springmvcNext/order/info/info/info
Beispiel 3: Wenn der Wert leer ist, bedeutet dies, dass die Methode die Standardaktion unter der Klasse ist. Der Zugriffspfad von Beispiel 3 lautet: http: // localhost: 8080/springmvcNext/order
2. URL -Vorlagenzuordnung
Deklarieren Sie die URI -Variable in der Annotation von RequestMapping und greifen Sie über die @PathVariable -Annotation aus der tatsächlichen Anforderungs -URL zu. Das Beispiel lautet wie folgt:
@Controllerpublic class OrderInfoController { // Example 10 URL with placeholder @RequestMapping(value = "user/{userId}/order/{orderNumber}", method = RequestMethod.GET) public ModelAndView OrderInfo4(@PathVariable int userId,@PathVariable String orderNumber) { return new ModelAndView("order/info", "message", "UserId:"+userId+"orderNumber:"+orderNumber); }}Beispiel 10 Anfrage URL: http: // localhost: 8080/springMvcNext/user/12/order/333 Wenn eine Anforderung über diese URL initiiert wird, extrahiert SpringMVC die × x -x -Variable in {× x ×} in der URL -Vorlage über @PathVariable. Die URL -Variable wird automatisch in den entsprechenden Typ konvertiert. Wenn es nicht konvertiert werden kann, wird ein Fehler zurückgegeben. Versuchen Sie beispielsweise mit der folgenden URL: http: // localhost: 8080/springMvcNext/user/xxx/order/333 wobei der Parameter userID = xxx auftritt, ein Fehler auftritt:
3. Ant-Stil-URL-Pfadzuordnung
Die Wildcard -Charaktere im Ant -Stil sind wie folgt:
Beispiel:
@ControllerPublic Class OrderInfoConTroller {// Beispiel 11 URL mit Platzhalter @RequestMapping (value = "order*", method = requestMethod.get) //@@requestMapping (value = "order?", Method = requestMeth.get) //@@requestMaping (value = "order/**, methody = method = methode = methode = requestMeth.get. orderNumber) {Neue modelAndView zurückgeben ("order/info", "meldung", "orderInfo5"); }}Beispiel 11 Anfrage URL: http: // localhost: 8080/springMvcNext/order/orderdexx? OrderNumber = 12 Es kann mit allen Anfragen von http: // localhost: 8080/SpringMvcNext/Order/Orderxxxx stimmen.
@RequestMapping (value = "order?", Method = requestMethod.get) kann übereinstimmen, z. B. ".../ordera? Ordernumber ...". ".../Bestellungen? OrderNumber ..." @RequestMapping (value = "order/**", method = requestMethod.get) kann übereinstimmen, z. B. "…/order/aaa? OrderNumber ...". ".../order/bbb/ccc? Ordernumber ...". "
Darüber hinaus überspringen RequestMapping auch die URL -Pfadzuordnung im Expressionstil, überspringen Sie diese
Geben Sie den Anforderungsart über das Methodenattribut an
Der Typ der Methodenattributanforderung Prädikat, das durch RequestMapping bereitgestellt wird, akzeptiert das folgende Beispiel nur GET -Anforderungen
// Beispiel 4 @RequestMapping (value = "detail", method = requestMethod.get) // Sie können auch @getMapping ("detail") public modelAndView info () {neuer ModelAndView ("Order/Info", "Message", "Info") verwenden; }SpringMVC bietet auch spezielle Annotationen für jeden Anforderungsart an:
@Getmapping
@Postmapping
@Putmapping
@Deletemapping
@Patchmapping
Geben Sie den Parameternamen oder Parameterwertbeschränkungen durch Parameter an
Das Params -Attribut kann definieren, dass der Anforderungsparameter spezifische Parameter enthält oder auch Einschränkungen für Parameterwerte definieren kann, wie im folgenden Code gezeigt:
// Beispiel 5 Parameter Die qualifizierten Parameter umfassen orderNumber @RequestMapping (value = "detail2", params = "orderNumber") public modelAndView detail2 (String orderNumber) {Neue modelAndView zurückgeben ("Order/Info", "Nachricht", orderumber); } // Beispiel 6 Parameter Der qualifizierte Parameter value @RequestMapping (value = "detail3", params = "orderNumber! }Beispiel 5: Qualifizierte Anforderungsparameter müssen die Parameter -Bestellnummer enthalten. Wenn der Parameter mit dem Namen OrderNumber nicht enthalten ist, wird der Zugriff abgelehnt: Zugriffspfad: http: // localhost: 8080/springMvcNext/order/detail2? Ordernumber = 12
Beispiel 6: Qualifizierte Anforderungsparameter müssen den Parameter Ordernumber enthalten und der Parameterwert kann nicht 1222 sein. Zugriffspfad: http: // localhost: 8080/springmvcNext/order/detail3? OrderNumber = 1222 Ein Fehler wird gemeldet
Geben Sie den Parameternamen oder Parameterwertbeschränkungen über Header an
Das durch RequestMapping bereitgestellte Methodenattribut kann den Anforderungs -Header -Typ angeben. Nur wenn der Anforderungsdaten -Headertyp den angegebenen Wert erfüllt, kann er normal zugegriffen werden.
// Example 7 params Limited parameter value @RequestMapping(value = "headtest",headers = "apikey=2313131313") //@RequestMapping(value = "headtest",headers= {"Accept=application/json"}) public ModelAndView Header() { return new ModelAndView("order/info", "message", "Header"); }Beispiel 7: Der Anforderungsheader muss Apikey enthalten: 23131313, um normal zurückzugeben, direkt zugreifen und Fehler zurückgeben:
Headerinformationen hinzufügen APIKEY: 2313131313 Zugriff ist erfolgreich:
Geben Sie den Inhaltstyp der angeforderten Einreichung über den Verbrauch an (Inhaltstyp)
// Beispiel 8 Consumer @RequestMapping (value = "konsumes", method = requestMethod.post, Consumer = "application/json") public modelAndView -Verbraucher (String OrderNumber) {Neue modelAndView zurückgeben ("Order/Info", "Nachricht", orderumber); }Das Beispiel begrenzt den Anforderungsparametertyp auf Anwendung/JSON, was bedeutet, dass diese Methode nur verarbeitet, dass der Inhaltstyp Application/JSON ist:
Das folgende Durchgang besteht an den Postman -Test:
Setzen Sie das Anforderungsparameterformat auf Anwendung/JSON, auf das normal zugegriffen werden kann:
Legen Sie das Parameterformat auf X-Form-Urlencoded, Rückgabefehler, HTTP-Status 415 ein
Geben Sie den zurückgegebenen Inhaltstyp durch Erzeugnisse an (Inhaltstyp)
Mit dem Attribut "Produzenten" wird der Rückgabe -Inhaltstyp festgelegt und erfüllt die folgenden Bedingungen: Der Wert, der in der Header der Akzeptanzanforderung akzeptiert wird, entspricht dem vom Hersteller festgelegten Wert, oder die akzeptierte Anforderung wird ohne Anzeige festgelegt.
// Beispiel 8 erzeugt eine begrenzte Rückgabedatenanwendung/json @RequestMapping (value = "produziert", method = requestMethod.get, procies = "application/json") public modelAndView produziert (String orderNumber) {return New modelAndView ("Order/Info", "Nachricht", orderNumber); }Beispiel 8 zeigt die Anwendung/JSON der Rückgabeinhaltsformat an. Wenn das vom Client festgelegte Format von ACCEPTY TEXT/JSON ist, wird ein Fehler gemeldet. HTTP -Status 406
Wenn das vom Client festgelegte Annahmeformat Application/JSON ist oder der Wert akzeptiert wird, kann es nicht festgelegt werden, kann es normal ausgeführt werden
Zusammenfassen
Das obige ist die Annotation von Anforderungszuordning RequestMapping für Spring MVC Review und Erfahrung einer neuen Reihe von Tutorials, die Ihnen vom Herausgeber vorgestellt wurden. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!