Vorwort
In diesem Artikel wird hauptsächlich die relevanten Inhalte zum Frühlingsrouting basierend auf URL -Parametern vorgestellt. Es wird für Ihren Referenz- und Lernwert geteilt. Schauen wir uns die detaillierte Einführung unten an.
Probleme entdecken
Kürzlich fand ich ein Problem beim Schreiben von Schnittstellen, dh den Pfadteilen der URLs der beiden REST -Schnittstellen sind gleich und unterscheiden sich gemäß der Abfrage in verschiedenen Parametern.
Beispielsweise lautet die normale Upload -Schnittstelle von S3:
Put /{BucketName} /{ObjectName}}Die Schnittstelle zum Hochladen in Stücken lautet:
Put /{BucketName} /{ObjectName}? PartNumber = {partNumber} & uploadid = {uploadid}Die Teilnummer und Uploadid sind eine Schnittstelle, und die beiden Parameter sind nicht weitergeleitet. Es handelt sich um eine andere Schnittstelle. Wie setze ich die Route im Frühling ein?
Im Allgemeinen setzen wir die Routen @RequestMapping(value = "/xx", method = RequestMethod.GET) . In der Methodensignatur können Parameter über @RequestParam injiziert werden.
Es ist jedoch nicht möglich, die Unterscheidung direkt zu implementieren, indem verschiedene Parameter injiziert werden, z. B.:
@ResponseBody@RequestMapping(value = "/xx", method = RequestMethod.GET)public String get1(){ return "get1";}@ResponseBody@RequestMapping(value = "/xx", method = RequestMethod.GET)public String get2(@RequestParam name){ return "get2" + name;}Dadurch wird ein Fehler angegeben:
Java.lang.ILLEGALSTATEException: mehrdeutige Zuordnung. Kann 'decontroller_v01' method public java.lang.string com.nd.sdp.nds.controller.v01.Democontroller.get1 () nicht zu kartieren.
Lösung
Dies bedeutet, dass Sie sich wiederholt registriert haben, sodass @RequestParam nicht als Routing -Basis verwendet werden kann.
@Requestparam
Wird verwendet, um den Inhaltstyp zu verarbeiten: Inhalt, die für die Anwendung/x-www-form-rencoded codiert sind. (Im HTTP-Protokoll ist der standardübergabes Parameter, wenn nicht angegeben ist, der Typ-Antrag/x-www-form-remodierte Typ)
Requestparam kann Eigenschaften einfacher Typen oder Objekttypen akzeptieren.
Die Essenz besteht darin, den Conversionsservice von Spring Conversion Mechanismus zu verwenden, um die Parameterkarte der Schlüsselwerte in Request.GetParameter () zu konfigurieren, um sie in ein Parameter empfangendes Objekt oder Feld umzuwandeln.
@RequestMapping ist eine Routing -Annotation. Zusätzlich zu dem häufig verwendeten Wertwertfeld zum Einstellen der URL liefert es auch einen Parameterparameter, in dem angegeben ist, wie die Parameter der Abfrage in der URL übereinstimmen. Mehrere Konfigurationsmethoden:
Auf diese Weise können Sie Routen sehr flexibel angeben.
Darüber hinaus liefert @RequestMapping auch den Header -Parameter, der es uns ermöglicht, gemäß der Header -Situation zu leiten!
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Referenzwert für das Studium oder die Arbeit eines jeden hat. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation überlassen. Vielen Dank für Ihre Unterstützung bei Wulin.com.