요청 매핑 주석 지침
@requestmapping 주석의 기능은 웹 요청을 특정 핸들러 클래스 및/또는 핸들러 방법에 맵핑합니다. 이 주석은 클래스 또는 메소드에서 사용될 수 있으며 속성 값을 통한 요청 경로를 지정할 수 있습니다. 컨트롤러 클래스에서 예비 URL 요청 매핑 정보를 제공하기 위해 사용되는데, 이는 웹 응용 프로그램의 루트 디렉토리와 관련된 사전 요청 경로입니다. 컨트롤러 방법에 사용되면 상세한 URL 맵을 제공하는 것을 의미합니다. 컨트롤러 클래스에 요청 매핑 주석이없는 경우 메소드의 주석 마크의 URL은 웹 응용 프로그램의 루트 디렉토리와 관련이 있습니다.
@requestmapping 주석은 다음 속성을 제공합니다.
이름 : Mapper 이름을 지정하는 데 사용됩니다
값 : 경로와 동일한 매핑 경로를 지정하는 데 사용됩니다.
경로 : 매핑 경로, 동일한 값을 지정하는 데 사용됩니다
방법 : 요청 유형을 지정하는 데 사용되는 방법 : Get, Post, Head, Options, Put, Patch, Delete, Trace
매개 변수 : 요청 된 매개 변수를 지정합니다
헤더 : 요청 헤더를 지정, 소스 코드 예제 : requestMapping (value = "/something", headers = "content-type = text/*")
소비자 : Application/JSON, Text/HTML과 같은 요청 제출을 처리하는 컨텐츠 유형 (컨텐츠 유형)을 지정합니다. 컨텐츠 유형이 이러한 미디어 유형 중 하나와 일치하는 경우에만 요청이 맵핑됩니다.
생성 : 요청에 따라 반환 된 컨텐츠 유형을 지정합니다 (예 : produces =”application/json; charset = utf-8”
값 속성을 통해 매핑 경로를 지정하십시오
컨트롤러 클래스에서 요청 매핑 주석을 사용하십시오
@controller @requestMapping ( "Order") public class orderInfoController {// example 1 @requestmapping ( "OrderInfo") public modelandView OrderInfo1 () {return new ModelAndView ( "Order/Info", "Message", "OrderInfo"); }}OrderController 클래스에서 Annotation RequestMapping ( "Order")을 추가하여 모든 쌍 요청이 "root/Order"로 시작해야 함을 나타냅니다.
예 1의 요청 경로는 http : // localhost : 8080/springmvcnext/order/OrderInfo입니다
예 1 컨트롤러의 @requestmapping ( "Order")이 주석을 달면 해당 요청 경로는 다음과 같습니다.
컨트롤러 메소드에서 요청 매핑 주석을 사용합니다
1. 일반적인 기본 사용
@controller @requestMapping ( "Order") public class orderInfoController {// example 1 @requestmapping ( "OrderInfo") public modelandView OrderInfo1 () {return new ModelAndView ( "Order/Info", "Message", "OrderInfo"); } // 예제 2 : 다중 URL Mappings @requestmapping ({ "info", "index"}) // 또는 @requestmapping (value = { "info", "index"}) public modelandView OrderInfo2 () {return new ModelAndView ( "Order/Info", "Message", "OrderInfo2"); } // 예제 3 @requestmapping public modelandview orderInfo3 () {return new ModelAndView ( "Order/Info", "Message", "OrderInfo3"); }}RequestMapping 만 값 속성 만 구성합니다. 다른 속성이 표시되지 않으면 값이 생략됩니다. URL 매핑 정보를 입력 할 수 있습니다. 다른 속성이 지정되면 값 속성을 명확하게 작성해야합니다.
위의 예 1의 액세스 경로는 http : // localhost : 8080/springmvcnext/order/OrderInfo입니다
예 2 : 요청 매핑 인터페이스의 값 속성은 배열이며 모든 액세스 경로는 배열 예제 2 : http : // localhost : 8080/springmvcnext/order/index 또는 http : // localhost : 8080/springmvcnext/order/info
예 3 : 값이 비어 있으면 메소드가 클래스의 기본 조치임을 의미합니다. 예 3의 액세스 경로는 http : // localhost : 8080/springmvcnext/order입니다
2. URL 템플릿 매핑
요청 매핑 주석에서 URI 변수를 선언하고 @PathVariable 주석을 통해 실제 요청 URL에서 값에 액세스하십시오. 예제는 다음과 같습니다.
@ControllerPublic Class OrderInfoController {// 예제 10 자리 표시 자 @RequestMapping (value = "user/{userId}/order/{ordernumber}", method = requestMethod.get) public modelandView OrderInfo4 (@PathVariable int userID,@pathVariable String) {return/info. " "userId :"+userId+"OrderNumber :"+OrderNumber); }}예제 10 요청 URL : http : // localhost : 8080/springmvcnext/user/12/order/333이 URL을 통해 요청이 시작되면 SpringMVC는 @PathVariable을 통해 URL 템플릿에서 {× ×}의 × 변수를 추출합니다. URL 변수는 해당 유형으로 자동 변환됩니다. 변환 할 수없는 경우 오류가 반환됩니다. 예를 들어, 다음 URL로 액세스하십시오 : http : // localhost : 8080/springmvcnext/user/xxx/order/333 여기서 userId = xxx가 발생합니다. 오류가 발생합니다.
3. 개미 스타일 URL 경로 매핑
개미 스타일 와일드 카드 문자는 다음과 같습니다.
예:
@ControllerPublic Class OrderInfoController {// example 11 viceholder @requestmapping (value = "order*", method = requestMethod.get) //@requestMapping (value = "order ="order = "requestmethod.get) //@requestmapping (value ="order = "order ="order = ", method = requestmol. 새로운 ModelAndView ( "Order/Info", "Message", "OrderInfo5"); }}예 11 요청 URL : http : // localhost : 8080/springmvcnext/order/orderdexx? OrderNumber = 12 http : // localhost : 8080/springmvcnext/order/Orderxxxxx? orderxxxxx? yyyy의 모든 요청과 일치 할 수 있습니다.
@requestmapping (value = "order?", method = requestmethod.get)과 같이 "…/ordera? ordernumber…."와 같은 일치 할 수 있습니다. "…/명령? OrderNumber…." @requestmapping (value = "order/**", method = requestmethod.get)과 같이 "…/order/aaa? ordernumber…."와 같은 일치 할 수 있습니다. "…/Order/BBB/CCC? OrderNumber…."
또한 RequestMapping은 정규 표현식 스타일 URL 경로 매핑을 지원합니다.
메소드 속성을 통해 요청 유형을 지정하십시오
요청 매핑으로 제공된 메소드 속성 요청 술어 유형의 유형, 다음 예제는 요청을받는 것만 허용합니다.
// 예제 4 @requestMapping (value = "detail", method = requestMethod.get) // @getMapping ( "detail") public modelandView info () {return new ModelAndView ( "Order/Info", "Message", "Info")를 사용할 수도 있습니다. }SpringMVC는 또한 각 요청 유형에 대한 전용 주석을 제공합니다.
@GetMapping
@postmapping
@putmapping
@deletemapping
@patchmapping
매개 변수를 통해 매개 변수 이름 또는 매개 변수 값 제약 조건을 지정하십시오
Params 속성은 요청 매개 변수에 특정 매개 변수가 포함되어 있음을 정의하거나 다음 코드와 같이 매개 변수 값에 대한 제약 조건을 정의 할 수 있습니다.
// 예제 5 매개 변수 자격을 갖춘 매개 변수에는 OrderNumber @RequestMapping (value = "detail2", params = "OrderNumbs") public modelandView detail2 (String OrderNumber) {return new ModelAndView ( "Order/Info", "Message", OrderNumber); } // 예제 6 매개 변수 value value @requestmapping (value = "detail3", params = "OrderNumber! = 1222") public modelandView detail3 (String OrderNumber) {return new ModelAndView ( "Order/Info", "Message", OrderNumber); }예 5 : 자격을 갖춘 요청 매개 변수에는 매개 변수 OrderNumber가 포함되어야합니다. OrderNumber라는 매개 변수가 포함되지 않은 경우 액세스가 거부됩니다 : 액세스 경로 : http : // localhost : 8080/springmvcnext/order/detail2? ordernumber = 12
예제 6 : 자격을 갖춘 요청 매개 변수는 매개 변수 순서를 포함해야하며 매개 변수 값은 1222가 될 수 없습니다. 액세스 경로 : http : // localhost : 8080/springmvcnext/order/detail3? OrderNumber = 1222 오류 가보고되었습니다.
헤더를 통해 매개 변수 이름 또는 매개 변수 값 제약 조건을 지정하십시오
RequestMapping에서 제공 한 메소드 속성은 요청 헤더 유형을 지정할 수 있습니다. 요청 데이터 헤더 유형이 지정된 값을 충족하는 경우에만 정상적으로 액세스 할 수 있습니다.
// 예제 7 매개 변수 제한 매개 변수 값 @requestmapping (value = "headtest", headers = "apikey = 2313131313") // @requestMapping (value = "headtest", headers = { "accept = application/json"}) public modelandview header () {new ModelAndView ( "Order/Info", ",", ",", ",", "); }예 7 : 요청 헤더에는 Apikey : 23131313이 포함되어 있어야합니다. 정상적으로 반환하고 직접 액세스하고 반환 오류입니다.
헤더 정보 추가 Apikey : 2313131313 액세스가 성공적입니다.
소비를 통해 요청 된 제출의 내용 유형을 지정하십시오 (콘텐츠 유형)
// 예제 8 소비자 @RequestMapping (value = "소비", Method = requestMethod.Post, 소비자 = "Application/JSON") public ModelAndView 소비자 (String OrderNumber) {return new ModelAndView ( "Order/Info", "Message", OrderNumber); }예제는 요청 매개 변수 유형을 Application/JSON으로 제한합니다.이 방법은 컨텐츠 유형이 Application/JSON이라는 요청 만 프로세스합니다.
다음은 우체부 테스트를 통과합니다.
요청 매개 변수 형식을 Application/JSON으로 설정하면 정상적으로 액세스 할 수 있습니다.
매개 변수 형식을 x- 형식 urlencoded, return 오류, HTTP 상태 415로 설정하십시오.
생산을 통해 반환 된 컨텐츠 유형을 지정하십시오 (콘텐츠 유형)
생산자 속성은 반환 내용 유형을 설정하는 데 사용되며 다음 조건을 충족합니다. 수락 요청의 헤더에 포함 된 값은 생산자가 설정 한 값과 동일하거나 허용 요청이 표시없이 설정됩니다.
// 예제 8은 제한된 반환 데이터 응용 프로그램/json @requestmapping을 생성합니다 (value = "produces", method = requestmethod.get, proceds = "application/json") public modelandview produces (String OrderNumber) {return new ModelAndView ( "Order/Info", "Message", OrderNumber); }예 8은 반환 내용 형식 응용 프로그램/json을 나타냅니다. 클라이언트가 설정 한 수락 형식이 텍스트/JSON 인 경우 오류 가보고됩니다. HTTP 상태 406
클라이언트가 설정 한 수락 형식이 Application/JSON이거나 수락 값이 설정되지 않으면 정상적으로 실행할 수 있습니다.
요약
위의 것은 스프링 MVC 검토에 대한 요청 매핑 요청 매핑 주석이며 편집자가 소개 한 새로운 시리즈 튜토리얼을 배우는 것입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!