Fünf allgemeine Annotationen von springmvc: 1. @RequestMapping, eine Annotation zur Verarbeitung der Anforderungsadressenzuordnung. 2. @RequestParam, die zum Zuordnen der Anforderungsparameterbereichsdaten zu den Parametern der Funktionsverarbeitung verwendet wird Methode; 3. @PathVariable, wird zum Festlegen von Anforderungsvariablen verwendet.
ist eine Annotation, die zur Verarbeitung der Anforderungsadressenzuordnung verwendet wird.
gilt für Klassen und Methoden. Bei einer Klasse bedeutet dies, dass alle Methoden in der Klasse, die auf Anfragen antworten, diese Adresse als übergeordneten Pfad verwenden.
Attribute
value
: Geben Sie die tatsächliche Adresse der Anforderung an. Der Wert kann ein gewöhnlicher spezifischer Wert sein oder als Werttyp angegeben werden, der eine bestimmte Variable (URI) enthält Vorlagenmuster mit Pfadvariablen)
Kann als Werttyp angegeben werden, der reguläre Ausdrücke enthält (URI-Vorlagenmuster mit regulären Ausdrücken) method
: Geben Sie den Methodentyp der Anforderung an, GET, POST, PUT, DELETE usw. consumes
: Geben Sie Process den Übermittlungsinhaltstyp (Content-Type) der Anfrage an, z. B. application/json, text/htmlproduces
: Geben Sie den zurückgegebenen Inhaltstyp an, nur wenn der (Akzeptieren) Typ im Anforderungsheader enthält den angegebenen Typ. Rückgabe params
: Die angegebene Anforderung muss bestimmte Parameterwerte enthalten, bevor diese Methode sie verarbeiten kann. headers
: Die angegebene Anforderung muss bestimmte Parameterwerte enthalten angegebene Header-Werte, bevor diese Methode die Anfrage verarbeiten kann
1.处理get请求: @RequestMapping(value = "index",method = RequestMethod.GET) 2.springboot错误处理(使用app客户端返回json格式,使用浏览器返回html错误页) @RequestMapping(produces = "text/html") 3.方法仅处理request Content-Type为“application/json”类型的请求 @RequestMapping(value = "/pets", consumes="application/json") 4.仅处理请求中包含了名为“myParam”,值为“myValue”的请求 @RequestMapping(value = "/pets/{petId}", params="myParam=myValue") 5.仅处理request的header中包含了指定“Refer”请求头和对应值为“http://www.rxy.com/”的请求 @RequestMapping(value = "/pets", headers="Referer=http://www.rxy.com/")
wird verwendet, um die Daten des Anforderungsparameterbereichs den Parametern der Funktionsverarbeitungsmethode zuzuordnen
Anwendbar für: Methodenparameter
Attribute
value/name
: Beide Attribute beziehen sich auf Parameternamen, also auf den Namen des angeforderten Parameters (normalerweise das Formularnamenattribut) required
: Ob Es ist notwendig, der Standardwert ist wahr, was darauf hinweist, dass in der Anforderung entsprechende Parameter vorhanden sein müssen, andernfalls wird eine Ausnahme ausgelöst defaultValue
: Standardwert, der den Standardwert angibt, wenn kein Parameter mit demselben Namen vorhanden ist Wenn Sie diesen Parameter festlegen, wird „required“ automatisch auf „false“ gesetzt , Nehmen Sie die Variablen in der URI-Vorlage als Parameter
Wert: Geben Sie den Variablennamen der URL-Vorlage an, wenn sich der Name vom Namen des Methodenparameters unterscheidet , Sie müssen es angeben.
如果是原子类型,不管加没加注解,都必须有值,否则抛出异常,如果允许空值请使用包装类代替 index(@RequestParam Integer num){} 表示该参数必须传递,值允许为空 表示该参数非必须,如果不传则默认为0 getPageData(@RequestParam(name="pageNum",defaultValue="0") String pageNo, String pageSize)
@ResponseBody
Diese Annotation wird verwendet, um die Methode von
Das Objekt zurückzugeben, nachdem es in das angegebene Objekt konvertiert wurde Format durch entsprechendes-Objekts geschrieben. Standardmäßig wird Controller
in der Form HttpMessageConverter
zurückgegeben (unter Verwendung des Response
-Konverters) body
ist anwendbar: Methode, wenn es sich bei den zurückgegebenen Daten nicht um eine Seite mit HTML-Tags, sondern um Daten in einem anderen Format (z. B. JSON, XML usw.) handelt, verwenden Sie zum Vergleichen springmvc
: @json
Konvertieren Sie die HTTP-Anfrage Körper in ein geeignetes HttpMessageConverter-Objekt umwandelnjackson
@
Geben Sie den Inhalt oder das Objekt als HTTP-Antwortkörper zurück und rufen Sie das Adapterkonvertierungsobjekt auf, das für HttpMessageConverter geeignet ist, um in den Ausgabestream zu schreibenRequestBody
@RequestBody
ResponseBody
1. Diese Annotation wird zum Lesen verwendet. Die Textteildaten der Anforderungsanforderung werden mit dem standardmäßig konfigurierten HttpMessageConverter analysiert und dann werden die entsprechenden Daten an das zurückzugebende Objekt gebunden
Optional für die POST/GET-Methode (d. h. nicht erforderlich, da @RequestParam und @ModelAttribute ebenfalls verarbeitet werden können)
Für Multipart-/Formulardaten , @RequestBody kann Daten in diesem Format nicht verarbeiten
Attribut: erforderlich: Ob erforderlich, der Standardwert ist wahr, was bedeutet, dass die Anforderung entsprechende Parameter haben muss, andernfalls wird eine Ausnahme ausgelöst
Beispiel: Normalerweise vorne -end sendet mit dieser Annotation eine Ajax-Anfrage, dann lautet der Anforderungsteil wie folgt:
@RequestMapping("/index/{id}") public String index(@PathVariable("id") String sdf){ System.out.println(sdf); return "index"; }
$.ajax({ type: "POST", url:"/role/saveRole", contentType:"application/json", data: JSON.stringify(_self.form)...Wenn das Frontend ein Array von Objekten übergibt, kann das Backend auch List
@CookieValue
gilt für: Methodenparameter
@RequestMapping(value = "/saveRole",method = RequestMethod.POST) public String saveRole(@RequestBody People requestJson) {}
kann den Wert des Request-Header-Teils an die Parameter der Methode binden
gilt für: Methodenparameter
获取请求中Accept-Encoding值,返回gzip, deflate, br public String index(@RequestHeader("Accept-Encoding") String host){return host;}
注解在方法上,表示该方法用于处理特定的异常,处理范围是当前类,如果想要全局捕获异常,需要使用@ControllerAdvice
当一个Controller中有多个HandleException注解出现时,那么异常被哪个方法捕捉呢?这就存在一个优先级的问题
ExceptionHandler的优先级是:在异常的体系结构中,哪个异常与目标方法抛出的异常血缘关系越紧密,就会被哪个捕捉到
属性:value: 需要处理的异常类型集合(Class)
在当前Controller有两个处理异常的方法,当访问/index时,页面显示: json data
package com.rxy.controller; @Controller public class HelloController { @ExceptionHandler({ ArithmeticException.class }) @ResponseBody public String handleArithmeticException(Exception e) { e.printStackTrace(); return "json data"; } @ExceptionHandler({ IOException.class }) public String handleIOException(Exception e) { e.printStackTrace(); //返回错误页面 return "error"; } @RequestMapping("/index") public String index(){ int i = 10 / 0; return "index"; } }
Das obige ist der detaillierte Inhalt vonDie Verwendung von 5 häufig verwendeten Anmerkungen in springmvc. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!