springmvc의 5가지 공통 주석: 1. 요청 주소 매핑을 처리하는 데 사용되는 @RequestMapping 2. 요청 매개변수 영역 데이터를 함수 처리 방법의 매개변수에 매핑하는 데 사용되는 @RequestParam @PathVariable - 요청 변수를 전송하는 데 사용됩니다.
은 요청 주소 매핑을 처리하는 데 사용되는 주석입니다.
클래스 및 메서드에 적용됩니다. 클래스에서 사용된다는 것은 요청에 응답하는 클래스의 모든 메서드가 이 주소를 상위 경로로 사용한다는 의미입니다.
Attribute
value
: 요청의 실제 주소를 지정합니다. 값은 일반적인 특정 값일 수도 있고 특정 변수를 포함하는 값 유형으로 지정할 수도 있습니다(URI 템플릿 패턴 경로 변수)value
: 指定请求的实际地址,值可以是普通的具体值,可以指定为含有某变量的一类值(URI Template Patterns with Path Variables)
可以指定为含正则表达式的一类值(URI Template Patterns with Regular Expressions)method
: 指定请求的method类型,GET、POST、PUT、DELETE等consumes
: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/htmlproduces
: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回params
: 指定request中必须包含某些参数值是,才让该方法处理headers
: 指定request中必须包含某些指定的header值,才能让该方法处理请求
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/")
用于将请求参数区数据映射到功能处理方法的参数上
适用:方法参数
属性
value/name
: 两个属性都指代参数名字,即入参的请求参数名字(通常表单name属性)required
: 是否必须,默认是true,表示请求中一定要有相应的参数,否则将抛出异常defaultValue
: 默认值,表示如果请求中没有同名参数时的默认值,设置该参数时,自动将required设为false
如果是原子类型,不管加没加注解,都必须有值,否则抛出异常,如果允许空值请使用包装类代替 index(@RequestParam Integer num){} 表示该参数必须传递,值允许为空 表示该参数非必须,如果不传则默认为0 getPageData(@RequestParam(name="pageNum",defaultValue="0") String pageNo, String pageSize)
用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数
适用:方法参数
属性
value: 指定url模版变量名称,如果名称与方法参数名不一样,则需要指定,否则可省略
@RequestMapping("/index/{id}") public String index(@PathVariable("id") String sdf){ System.out.println(sdf); return "index"; }
该注解用于将Controller
的方法返回的对象,通过适当的HttpMessageConverter
转换为指定格式后,写入到Response
对象的body
数据区,默认springmvc
以json
形式返回(使用jackson
转换器)
适用:方法,返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用
对比:@RequestBody
将HTTP请求正文转换为适合的HttpMessageConverter对象
@ResponseBody
정규 표현식이 포함된 값 유형(정규 표현식이 포함된 URI 템플릿 패턴)
메서드
: 요청된 메소드 유형을 GET, POST, PUT, DELETE 등으로 지정합니다. consumes
: 요청 처리를 위해 제출된 콘텐츠 유형(Content-Type)을 지정합니다(예: application/json, text/htmlproduces
: 반환된 콘텐츠 유형 지정, 요청 헤더의 (수락) 유형에 다음이 포함된 경우에만 지정된 유형만 반환됩니다params
: 지정된 요청은 메서드가 이를 처리하기 전에 특정 매개변수 값을 포함해야 합니다headers: 지정된 요청에는 지정된 특정 매개변수가 포함되어야 합니다. 헤더 값을 사용하면 요청을 처리할 수 있습니다<br><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> $.ajax({
type: "POST",
url:"/role/saveRole",
contentType:"application/json",
data: JSON.stringify(_self.form)...</pre><div class="contentsignin">로그인 후 복사</div></div>
<br>@RequestParam<br><br>은 요청 매개변수 영역 데이터를 함수 처리 방법의 매개변수에 매핑하는 데 사용됩니다.<br>적용 대상: 메소드 매개변수<br>
값/이름
: 두 속성 모두 매개변수 이름, 즉 입력된 요청 매개변수의 이름을 나타냅니다(일반적으로 양식 이름 속성)
필수 code>: 필요한지 여부에 관계없이 기본값은 요청에 해당 매개변수가 있어야 함을 나타내는 true입니다. 그렇지 않으면 예외가 발생합니다.<p><code>defaultValue
: 기본값, 없는 경우 기본값을 나타냅니다. 이 매개변수를 설정하면 필수가 자동으로 false로 설정됩니다
@RequestMapping(value = "/saveRole",method = RequestMethod.POST) public String saveRole(@RequestBody People requestJson) {}
사용 요청 URL의 템플릿 변수를 함수 처리 방법의 매개변수, 즉 take에 매핑합니다. URI 템플릿의 변수를 매개변수
적용 대상: 메서드 매개변수
값: 이름이 메서드 매개변수 이름과 동일한 경우 URL 템플릿 변수 이름을 지정합니다. 다르면 지정해야 합니다. 그렇지 않으면 생략 가능
获取cookie中的JSESSIONID public String index(@CookieValue("JSESSIONID") String cookie){}
Controller
의 메서드에서 반환된 개체를 적절한 HttpMessageConverter
를 통해 지정된 개체로 변환하는 데 사용됩니다. 형식을 지정한 후 , Response
객체의 body
데이터 영역에 씁니다. 기본적으로 springmvc
는 json 형식으로 반환합니다.
(jackson 변환기 사용) 🎜적용 대상: 메서드, 반환된 데이터가 html 태그가 있는 페이지가 아니라 다른 형식(예: json, xml 등)의 데이터인 경우 , 🎜Contrast: @RequestBody HTTP 요청 본문을 적합한 HttpMessageConverter 개체로 변환🎜@<code>ResponseBody
콘텐츠 또는 개체를 HTTP 응답 본문으로 반환하고 어댑터 변환을 호출합니다. HttpMessageConverter가 출력 스트림에 쓰기에 적합한 개체🎜🎜@RequestBody 🎜🎜1. 이 주석은 요청 요청의 본문 부분을 읽고 시스템의 기본 구성 HttpMessageConverter를 사용하여 이를 구문 분석한 다음 해당 데이터를 개체에 바인딩하는 데 사용됩니다. 🎜2. 그런 다음 HttpMessageConverter에서 반환된 개체 데이터를 컨트롤러에서 메서드의 매개 변수로 설정합니다. 🎜적용 대상: 메서드 매개 변수, 요청의 Content-Type: application/json, application/xml 이 주석을 사용하세요🎜application/x-www-form-urlencoded의 경우 요청 메서드가 put이면 필요합니다. 🎜 POST/GET 메서드의 경우 선택 사항(즉, @RequestParam, @ModelAttribute도 사용할 수 있으므로 필요하지 않음) 처리됨) 🎜 multipart/form-data의 경우 @RequestBody는 이 형식의 데이터를 처리할 수 없습니다. 🎜 속성: 필수: 필요합니까? 기본값은 true입니다. 이는 요청에 해당 매개변수가 있어야 함을 의미합니다. 그렇지 않으면 예외가 발생합니다. : 일반적으로 이 주석을 사용하는 프런트 엔드는 ajax 요청을 보내고 요청 부분은 다음과 같습니다. 🎜获取请求中Accept-Encoding值,返回gzip, deflate, br public String index(@RequestHeader("Accept-Encoding") String host){return host;}
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"; } }
获取请求中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"; } }
위 내용은 springmvc에서 일반적으로 사용되는 5가지 주석 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!