Spring MVC 컨트롤러 메소드에서 GET HTTP 요청의 매개 변수 값을 어떻게 취합니까?


87

이 기간에 저는 Spring MVC 쇼케이스 예제 (STS dasboard에서 다운로드 가능)를 공부하고 있으며 Request Mapping예제 에 대한 몇 가지 간단한 질문이 있습니다.

1) 내 home.jsp페이지에는 다음 링크가 있습니다.

        <li>
            <a id="byParameter" class="textLink" href="<c:url value="/mapping/parameter?foo=bar" />">By path, method, and presence of parameter</a>
        </li>

이 링크에서 볼 수 있듯이 "bar"값을 포함하는 "foo"매개 변수가있는 HTTP GET 요청을 수행하고 있습니다.

이 HTTP 요청은 컨트롤러 클래스 MappingController의 다음 메서드에 의해 처리됩니다.

@RequestMapping(value="/mapping/parameter", method=RequestMethod.GET, params="foo")
public @ResponseBody String byParameter() {
    return "Mapped by path + method + presence of query parameter! (MappingController)";
}

이 메소드 GET는 "foo"라는 매개 변수가있는 HTTP 요청 (전용 유형)을 관리합니다.

이 매개 변수의 값 ( "bar")을 가져 와서 by Parameter 메서드의 코드 내부에있는 변수에 어떻게 넣을 수 있습니까?

답변:


184

설명서에 설명 된대로 @RequestParam주석 을 사용하여 :

public @ResponseBody String byParameter(@RequestParam("foo") String foo) {
    return "Mapped by path + method + presence of query parameter! (MappingController) - foo = "
           + foo;
}

3
명확한 답변과 문서에 대한 참조에 감사드립니다
AndreaNobili

3
10 개의 매개 변수가있는 경우이 작업을 10 번 수행해야합니까? 아니면 시나리오를위한 더 나은 방법이 있습니다
Count

2
@Count : 문서에 제공 한 링크를 클릭 한 다음 "지원되는 메소드 인수 유형"단락까지 조금 위로 스크롤하고 "명령 또는 양식 객체"에 대한 부분을 읽어보십시오
JB Nizet

43

URI 템플릿을 사용할 수도 있습니다. 요청을 편안한 URL로 구성했다면 Spring은 URL에서 제공된 값을 구문 분석 할 수 있습니다.

HTML

<li>
    <a id="byParameter" 
       class="textLink" href="<c:url value="/mapping/parameter/bar />">By path, method,and
           presence of parameter</a>
</li>

제어 장치

@RequestMapping(value="/mapping/parameter/{foo}", method=RequestMethod.GET)
public @ResponseBody String byParameter(@PathVariable String foo) {
    //Perform logic with foo
    return "Mapped by path + method + presence of query parameter! (MappingController)";
}

Spring URI 템플릿 문서

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.