@requestparam, 당신은 그것을 보았을 것입니다. @pathvariable, 당신은 그것을 알고 있었을 것입니다. @QueryParam, 왜 몰라요? ! 그리고 그는 당신에게 친숙합니다 (@cookievalue)! 그녀 (@ModelandView)! 그것 (@ModelAttribute)! 맞습니다.이 말에 주석을 달면 Spring MVC는 당신에게 화려한 세상을 열어줍니다. 어서, 흥분하지 마십시오 (MI), (Hu), 앉으십시오.이 주석에 대해 잘 이야기합시다.
1. 스프링 MVC에서 요청 경로를 일치시키는 방법 - "어떤 요청 경로가 더 좋을지, 요청 맵핑이 잘 알려져 있습니다."
@requestmapping은 GET 요청, 사후 요청 또는 휴게소 및 비 레스트 스타일과 같은 요청을 매핑하는 데 사용됩니다. 이 주석은 클래스 또는 클래스에서 사용되는 경우 클래스의 모든 방법의 부모 경로를 나타내는 클래스 또는 메소드에서 사용할 수 있습니다.
예를 들어 (SpringMvcTest와 같은 테스트 클래스 및 일부 페이지는 첫 번째 기사 "HellowOrld에서 시작하는 SpringMVC 학습")에서 소개되었습니다.
SpringMvcTest.java에 테스트 방법을 추가하십시오.
@requestMapping ( "/testRequestMapping") public String testRequestMapping () {System.out.println ( "TestRequestMapping"); 반환 성공;}주석 @RequestMapping ( "/testRequestMapping")이 메소드 레벨에 추가 되므로이 메소드는 "/testRequestMapping"의 상대 경로를 통해 위치 할 수 있음을 의미합니다. 동시에 SpringMvcTest 클래스에 클래스 수준의 요청 매핑 주석을 넣습니다.
@requestmapping ( "/springmvc")@controllerpublic class springmvctest {@Controller의 주석도 있습니다. 이 주석은 SpringMVC의 Dispatcherservlet에 의해 배포 된 요청을 처리하는 데 도움이됩니다. 서비스 처리 계층을 통해 사용자가 요청한 데이터를 캡슐화 한 다음 모델을 디스플레이의 해당보기로 반환합니다. 이 시점에서 "SpringMVC/TestRequestMapping"과 같은 경로가 있으며 TestRequestMapping 메소드를 찾은 다음 메소드 내에서 메소드 본문을 실행할 수 있습니다.
한 가지 더 추가하려면 RequestMapping은 다음과 같은 퍼지 매칭 경로를 구현할 수 있습니다.
? : 캐릭터와 일치합니다
*: 모든 캐릭터와 일치하십시오
** : 다층 경로와 일치합니다
/springmvc/**/lasttest는/springmvc/firsttest/secondtest/lasttest와 같은 경로와 일치 할 수 있습니다
2. 스프링 MVC의 요청 된 매개 변수를 얻는 방법 - "8 개의 불멸은 바다를 가로 지르며, 각각의 마법의 힘을 보여줍니다."
1. @PathVariable
이 주석은 요청 URL에 바인딩 된 자리 표시자를 매핑하는 데 사용됩니다. @PathVariable을 통해 URL의 자리 표시 자의 매개 변수를 컨트롤러 처리 방법의 매개 변수에 바인딩 할 수 있습니다. 이해가 안 돼요? See example:
@requestMapping ( "/testPathVariable/{id}") public String testPathVarible (@PathVariable (value = "id") 정수 ID) {System.out.println ( "testPathVariable :" + id); 반환 성공;}index.jsp에서 요청을 트리거하기 위해 연결을 추가합니다.
<a href = "springmvc/testPathVariable/1"> testPathVariable </a> <br/> <br/>
여기에 하이퍼 링크가 있음을 알 수 있습니다. 클릭하면 SpringMVC/TestPathVariable/1에 해당하는 컨트롤러 처리 방법에 입력됩니다. 이제이 요청 매개 변수에서 "1"을 얻으려면 {id}에 대한 TestPathVariable 메소드, id}의 특정 서신에 "/testPathVariable/id"를 추가하려고합니다.이 메소드의 매개 변수에서 @PathVariable (value = "id")은 정지 ID를 통해 바인딩하고받을 수 있습니다.
2. @requestparam
이 주석은 또한 요청 매개 변수를 얻는 데 사용됩니다. 그렇다면이 주석은 @PathVariable과 어떻게 다릅니 까? 예를 살펴 보겠습니다.
SpringMvcTest에 메소드 추가
@requestmapping (value = "/testrequestparam") public String testRequestParam (@requestparam (value = "username") 문자열 사용자 이름, @requestparam (value = "age", required = false, defaultValue = "0") int Age) {system.out.println ( "Tremrequestparam" + " +" + " +" + " +" 반환 성공;}index.jsp에 하이퍼 링크 태그를 추가하십시오
<a href = "springmvc/testrequestparam? username = jackie & age = 12"> testrequestparam </a> <br/> <br/>
페이지의 하이퍼 링크를 클릭하면 컨트롤러의 TestRequestParam 메소드의 요청 매핑 경로와 일치합니다. 이 방법에서는 @RequestParam 주석을 통해 두 개의 변수를 선언하여 요청에서 쿼리로 가져온 매개 변수 값을 얻습니다. 하나는 사용자 이름의 값이고 다른 하나는 나이 가후의 값입니다.
이것을 본 후에, 당신은 아마도 @pathvariable과 @requestparam의 차이점을 이해할 것입니다. "SpringMvc/TestPathVariable/1"과 같은 요청의 경우 @PathVariable을 사용하여 요청 된 매개 변수를 바인딩합니다. "SpringMVC/TestRequestParam? username = jackie & age = 12"와 같은 요청 매개 변수는 키 값 쌍으로 나타납니다. 우리는 @requestparam을 사용하여 사용자 이름이나 나이 후 특정 요청 값을 얻습니다.
QueryParam은 Spring MVC 프레임 워크 내에서 주석이 아니기 때문에 RequestParam과 유사하므로 여기에 자세히 설명되지 않습니다.
다른 요청 유형 및 요청 방법의 경우 Spring MVC에는 일련의 대상 솔루션이 있습니다. 인기있는 REST 스타일의 요청이 현재 어떤지 살펴 보겠습니다. 휴식 스타일을 사용하여 추가, 삭제, 수정 및 검색을 달성하십시오.
확인 (get), 추가 (post), 삭제 (삭제) 및 수정 (PUT)을위한 인터페이스의 상향식 구현은 상부에서 SpringMVCTest 클래스에서 구현됩니다.
@requestmapping (value = "/testrest/{id}", method = requestmethod.put) public String testRestput (@PathVariable (value = "id") 정수 ID) {System.out.println ( "Test Put :" + id); return success;} @requestmapping (value = "/testrest/{id}", method = requestmethod.delete) public String testRestDelete (@PathVariable (value = "id") 정수 ID) {System.out.println ( "테스트 삭제 :" + id); 반환 성공;} @requestmapping (value = "/testrest", method = requestMethod.post) public String testRest () {System.out.println ( "테스트 게시물"); 반환 성공;} @requestmapping (value = "/testrest/{id}", method = requestmethod.get) public String testrest (@pathvariable (value = "id") 정수 ID) {System.out.println ( "테스트 :" + id); 반환 성공;}그렇다면 프론트 데스크 인터페이스를 구현하는 방법은 무엇입니까? 해당 순서는입니다
<form action = "springmvc/testrest/1"method = "post"> <input type = "hidden"name = "_ method"value = "put"/<input type = "value ="testRestput "/> </form> <br/> <form action ="springmvc/testrest/1 "method ="post = "hidden" "_ method" 값 = "삭제"/> <입력 유형 = "value ="value = "testrest delete"/> </form> <br> <form action = "springmvc/testrest"method = "post"> <input type = "value ="testRestPost "> </form> <br/> <a <a. href = "springmvc/testrest/1"> testrest </a> <br/> <br/>
또한 configuration 파일 web.xml에 명령문을 추가하여 POST 변환을 지원하여 삭제 및 요청을 추가해야합니다.
<!-hiddenhttpmethodfilter 구성 : 요청을 삭제하거나 게시하는 게시물 요청을 변환 할 수 있습니다-> <filter> <filter-name> hiddenhttpmethodfilter </filter-name> <filter-class> org.spramework.web.filter.hiddenhttpmethfilter </filterclass> </filterclass> <Filter-Mapping> <Filter-Name> HIDDENHTTPMETHODFILTER </FILTER-NAME> <URL-PATTERN>/*</url-PATTERN> </FILTER-MAPPING>
보시다시피, Put and Delete는 삭제 및 수정을 직접 구현하기 위해 여기에서 지원되지 않기 때문에 여기에서 수정 및 삭제는 게시물을 통해 전송됩니다. 대신, 포스트 메소드를 사용하고 조용히 토큰 숨겨진 입력 태그를 가져와 프론트 데스크에서 보낸 것이 실제로 삭제 및 수정 요청임을 알리기 위해 배경을 알려줍니다.
이 프로세스는 어떻게 구현됩니까?
<입력 유형 = "hidden"name = "_ method"value = "delete"/>
이 토큰은 백그라운드에서 다른 사람들이 구입합니다. 그런 다음 나중에 어떻게 구입했는지 봅시다.
최종 분석에서는 web.xml에 hiddenhttpmethodfilter 클래스가 추가 되었기 때문입니다. 이 클래스에는 방법이 있습니다. 디버깅을 통해 단서를 찾아서 Tomcat (Tomcat8 아님)을 시작하고 삭제 작업의 해당 입력 태그를 클릭하고 디버깅 인터페이스를 입력 할 수 있습니다. 우리는 볼 수 있습니다 :
작은 구덩이 : 여기에서 시작은 tomcat8 일 수 없지만 7 또는 6 등과 같은 8보다 작은 버전 일 수 있습니다. 다음 그림은 Tomcat을 사용하여 오류 메시지와 7을 사용한 성공적인 응답을 보여줍니다.
요약하면, Put and Delete 요청을 보내는 방법 :
1. web.xml에서 hiddenhttpmethodfilter를 구성하십시오
2. 사후 요청을 보내십시오
3. 요청에는 숨겨진 도메인이 있으며 이름은 "_mothod"이며 값은 up 팅 또는 삭제됩니다.
마지막으로 @cookievalue 주석에 대해 이야기 해 봅시다.
3. @cookievalue
이 주석은 또한 비슷한 루틴이며 쿠키 값을 매핑하는 매핑이기도합니다.
요청을 보낼 때 요청에 쿠키 값이 포함되어 있음을 알 수 있습니다.
예를 들어, JSSESSIONID 또는 경로는 여기에 있습니다. 이제 쿠키 가치를 얻는 방법을 작성합니다.
SpringMvcTest를 추가하십시오
@requestmapping (value = "/testCookieValue") public String testCookieValue (@CookieValue ( "jsessionId") String CookieValue) {System.out.println ( "TestCookieValue :" + CookieValue); 반환 성공;}index.jsp 인터페이스에 링크를 추가하십시오
<a href = "springmvc/testcookievalue"> testcookievalue </a> <br/> <br/>
이런 식으로 "TestCookieValue : 1410F05C9ADD84E8659C2AC79E8CC666"과 같은 결과를 얻을 수 있습니다.
지금까지 우리는 소개했습니다
1. @requestmapping의 사용
2. 요청 매개 변수의 @PathVariable 및 @RequestParam의 사용법을 얻으십시오.
3. REST 스타일 요청을 구현하는 방법을 소개하고 게시물이 삭제 및 요청을 넣는 방법을 분석합니다.
4. @cookievalue 사용 소개
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.