@RequestMapping-Annotation in Spring MVC

Die Annotation @RequestMapping wird zum Zuordnen von Webanforderungen zu bestimmten Handlerklassen oder Handlermethoden verwendet. Die mit @RequestMapping annotierten Klassen oder Methoden werden gescannt und als URI-Zuordnungen für diese bestimmte Klasse oder Methode registriert. Alle zukünftigen Webanfragen werden an diese Klasse oder Methode umgeleitet. Diese Anmerkung ist Teil des Spring MVC-Moduls.

Lesen Sie auch:

  • Spring Boot-Tutorials
  • Spring Data JPA-Tutorials

Diese Annotation kann auf Klassenebene oder Methodenebene verwendet werden. Wenn Sie es auf Klassenebene verwenden, wird dies als gemeinsamer relativer Pfad für alle Methoden innerhalb der Klasse festgelegt. Wenn Sie nur die Methodenebene verwenden, fungiert jede als eigener relativer Pfad vom Kontextstammverzeichnis der Anwendung. Dieses Tutorial enthält Beispiele, die Ihnen den Unterschied beim Annotieren auf Klassenebene und Methodenebene verdeutlichen.

RequestMapping in Spring MVC

RequestMapping in Spring MVC

RequestMapping-Anmerkungsparameter

Die folgenden Parameter werden von dieser Anmerkung akzeptiert:

  • verbraucht: Dieses Argument schränkt das akzeptable Medienformat der Anfrage ein.
  • Überschriften: Die Header der zugeordneten Anfrage, die die primäre Zuordnung eingrenzen.
  • Methode: Dieses Argument, das die HTTP-Methoden angibt, kann auf diese Methode umgeleitet werden. Durch Trennen durch Kommas können mehrere angegeben werden. Die verwendeten HTTP-Methoden sind GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE
  • Name: Dies ist lediglich ein Name für die Zuordnung. Dies kann auf Klassenebene und Methodenebene angegeben werden. Wenn Sie auf beiden Ebenen angeben, wird durch Verkettung mit „#“ als Trennzeichen ein kombinierter Name abgeleitet.
  • Parameter: Die Parameter der zugeordneten Anfrage, die die primäre Zuordnung eingrenzen.
  • Weg: Dies ist ein Alias ​​für das Wertargument. die Pfadzuordnungs-URIs (z. B. „/myPath.do“). Es werden auch Pfadmuster im Ant-Stil unterstützt (z. B. „/myPath/*.do“). Auf Methodenebene werden relative Pfade (z. B. „edit.do“) innerhalb der primären Zuordnung unterstützt, die auf Typebene ausgedrückt wird.
  • produziert: Dieses Argument schränkt das zurückgegebene Medienformat auf die Antwort ein.
  • Wert: Dies ist die primäre Zuordnung, die zum Zuordnen der Webanforderung zu dieser Methode verwendet wird.

Zuordnung auf Klassenebene

Wenn Sie es erklären @RequestMapping Auf Klassenebene gilt der Pfad für alle Methoden in der Klasse. Schauen wir uns das folgende Beispielcode-Snippet an:

@Controller
@RequestMapping("/millets")
public class SpringMVCController {
	@RequestMapping(value="/foxtail")
	public String getFoxtail(){
		return "foxtail";
	}
	@RequestMapping(value="/finger")
	public String getFinger(){
		return "finger";
	}	
	public String getCommon(){
		return "common";
	}	
}

Im obigen Code der relative Pfad /millets wird für alle Methoden innerhalb der Klasse erzwungen. Die Methode getFoxtail() wird aufgerufen, wenn der Benutzer den URI eingibt /millets/foxtail. Allerdings die letzte Methode getCommon() wird von keiner Anfrage aufgerufen, da diese Methode nicht mit annotiert ist @RequestMapping Anmerkung.

Zuordnung auf Methodenebene

Wenn es keine Zuordnung auf Klassenebene gibt und mehrere Zuordnungen auf Methodenebene definiert sind, würde jede Methode einen eindeutigen relativen Pfad bilden. Schauen wir uns den folgenden Beispielcode an:

@Controller
public class SpringMVCController {
	@RequestMapping(value="/foxtail")
	public String getFoxtail(){
		return "foxtail";
	}
	@RequestMapping(value="/finger")
	public String getFinger(){
		return "finger";
	}	
}

Im obigen Code haben beide Methoden ihre individuellen relativen Pfade /foxtail Und /finger jeweils.

Zuordnung von HTTP-Methoden

Eine andere Möglichkeit, die Anforderungszuordnung durchzuführen, ist die Verwendung der HTTP-Methoden. Sie können im angeben @RequestMapping Anmerkung, für welche HTTP-Methodenanforderung die Methode aufgerufen werden muss. Schauen wir uns den folgenden Code an:

@Controller
public class SpringMVCController {
	@RequestMapping(value="/foxtail",method=RequestMethod.GET)
	public String getFoxtail(){
		return "foxtail";
	}
	@RequestMapping(value="/foxtail",method=RequestMethod.POST)
	public String getList(){
		return "foxtailList";
	}	
	@RequestMapping(value="/",method=RequestMethod.GET)
	public String getMillets(){
		return "millets";
	}	
}

Wenn Sie sich im obigen Code die ersten beiden Methoden zur Zuordnung zum gleichen URI ansehen, haben beide jedoch unterschiedliche HTTP-Methoden. Die erste Methode wird als HTTP-Methode aufgerufen GET wird verwendet und die zweite Methode wird als HTTP-Methode aufgerufen POST wird eingesetzt. Diese Art von Design ist sehr nützlich, um die REST-APIs für Ihr Projekt zu schreiben.

Mapping mit Params

Eine weitere sehr nützliche Zuordnungstechnik besteht darin, die Parameter in der Abfragezeichenfolge zum Filtern der Handler-Zuordnungen zu verwenden. Sie können beispielsweise die Handlerzuordnung einschränken, indem Sie Folgendes konfigurieren: Wenn die URL-Abfragezeichenfolge diesen Parameter enthält, wechseln Sie zu dieser Methode oder leiten Sie zu einer anderen Methode weiter.

Schauen wir uns diesen Beispielausschnitt an:

@RequestMapping(value="/millets",method=RequestMethod.GET,params="foxtail")
public String getFoxtail(){
	return "foxtail";
}

Im obigen Beispielcode geht die Anfrage nur dann an diese Methode, wenn die folgenden Kriterien erfüllt sind:

  • Wenn die URL ist /millets Und
  • Wenn die HTTP-Methode ist GET Und
  • Wenn die Abfrageanforderung den Parameter mit dem Namen enthält foxtail
  • Zusammenfassung

    In diesem Tutorial habe ich erklärt, wie Sie die Annotation @RequestMapping in Ihrer Spring-MVC-Anwendung verwenden. Die verschiedenen Kombinationen wie Zuordnung auf Klassenebene, Zuordnung auf Methodenebene, Parameterabgleich, HTTP-Methodenabgleich, Header-Zuordnung und URI-Zuordnungen für mehrere Pfade.

    Wenn Sie Fragen zur Verwendung der @RequestMapping-Annotation und zu damit verbundenen Spring-mMVC-Problemen haben, können Sie in diesem Tutorial gerne einen Kommentar hinterlassen, um Hilfe zu erhalten.

    Vielen Dank, dass Sie mein Tutorial gelesen haben!! Viel Spaß beim Lernen!!

    Kommentar verfassen

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

    Nach oben scrollen