머리말
이 기사는 주로 URL 매개 변수를 기반으로하는 스프링 라우팅에 대한 관련 컨텐츠를 소개합니다. 참조 및 학습 가치에 대해 공유됩니다. 아래에 자세한 소개를 살펴 보겠습니다.
문제를 발견하십시오
최근에 인터페이스를 작성할 때 문제가 발견되었습니다.
예를 들어, S3의 일반 업로드 인터페이스는 다음과 같습니다.
put /{bucetName} /{ObjectName}청크를 업로드하기위한 인터페이스는 다음과 같습니다.
put /{bucetName} /{ObjectName}? partnumber = {partnumber} & uploadId = {uploadId}Partnumber 및 UploadID는 하나의 인터페이스이며 두 매개 변수는 전달되지 않습니다. 다른 인터페이스입니다. 그렇다면 봄에 경로를 설정하는 방법은 무엇입니까?
일반적으로 @RequestMapping(value = "/xx", method = RequestMethod.GET) . 그런 다음 메소드 서명에서 @requestparam을 통해 매개 변수를 주입 할 수 있습니다.
그러나 다음과 같은 다른 매개 변수를 주입하여 구분을 직접 구현할 수는 없습니다.
@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;}오류 가보고됩니다.
java.lang.ilegalstateexception : 모호한 매핑. 'democontroller_v01'메서드 public java.lang.string com.nd.sdp.ndss.controller.v01.democontroller.get1 () to {[/demo/xx], method = [get]} : 이미 'democontroller_v01'Bean Method가 있습니다.해결책
그것은 당신이 반복적으로 등록했음을 의미하므로 @requestparam을 라우팅 기준으로 사용할 수 없습니다.
@requestparam
컨텐츠 유형을 처리하는 데 사용됩니다. Application/X-WWW-FORM-URLENCODED 용으로 인코딩 된 컨텐츠. (HTTP 프로토콜에서 컨텐츠 유형이 지정되지 않은 경우 기본 전달 된 매개 변수는 Application/X-www- 형태 인코딩 유형입니다)
RequestParam은 간단한 유형 또는 객체 유형의 속성을 허용 할 수 있습니다.
본질은 Spring의 변환 메커니즘 ConversionService를 사용하여 request.getParameter ()에서 키 값 매개 변수 맵을 구성하여 객체 또는 필드를 수신하는 매개 변수로 변환하는 것입니다.
@requestmapping은 라우팅 주석입니다. URL을 설정하는 데 일반적으로 사용되는 값 필드 외에도 URL의 쿼리 매개 변수를 일치시키는 방법을 지정할 수있는 Params 매개 변수도 제공합니다. 여러 구성 방법 :
이를 통해 경로를 매우 유연하게 지정할 수 있습니다.
또한 @RequestMapping은 헤더 상황에 따라 경로를 라우팅 할 수있는 헤더 매개 변수도 제공합니다!
요약
위는이 기사의 전체 내용입니다. 이 기사의 내용에 모든 사람의 연구 나 작업에 대한 특정 참조 가치가 있기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다. Wulin.com을 지원 해주셔서 감사합니다.