@RequestParam과 @PathVariable

@RequestParam과 @PathVariable






RequestParam에 대한 설명은 아래의 링크로


http://heavenly-appear.tistory.com/302





/**
 * Pathvariable 예제
 * @return
 */
@RequestMapping("/page/{var}")
public String page(@PathVariable String var){
    String returnUrl = "";
    if(var.equals("one")) {
        returnUrl = "page1";
    else if(var.equals("two")) {
        returnUrl = "page2";
    }
    return returnUrl;
}



RequestMapping의 URL 정의 부분과 Method 내의 Parameter 부분에 

정의를 하여 사용이 가능합니다.


연결관계는 









처럼 관계를 가져야 합니다.


상단 코드에서 return값으로 정해준 url 페이지를 2개 생성 해보도록 하겠습니다.







page1.jsp 페이지코드

1
<h2>PAGE1.JSP</h2>

page2.jsp 페이지코드

1
<h2>PAGE2.JSP</h2>




그럼 각 페이지별 출력을 위하여 실행을 해보도록 하겠습니다.





https://localhost:포트번호/page/one 호출 결과




https://localhost:포트번호/page/two 호출 결과








실행결과 정상적으로 @pathvariable 어노테이션을 이용하여 

변수로 구분된 경로에 따른 returnURL 페이지 출력이 나왔습니다.


 어노테이션을 사용한다면 한페이지로 여러개의 동일한 화면을 구분하게끔 구현이 가능할 것입니다.


이어서 일반 GET 방식과의 차이점에 대해서 비교를 해보도록 하겠습니다.


이번코드에서는 별도의 RETURN 페이지를 생성하지 않고 콘솔에서 데이터를 받기만 하도록 하겠습니다.


2가지 방식의 컨트롤러를 만들어 봅니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
 * GET방식 컨트롤러
 * @param key1
 * @param key2
 */
@RequestMapping("/resultByGet")
public void resultByGet(String key1, String key2){
    System.out.println("key1::"+key1);
    System.out.println("key2::"+key2); 
}
     
/**
 * Pathvariable방식 컨트롤러
 * @param key1
 * @param key2
 */
@RequestMapping("/resultByPath/{key1}/{key2}")
public void resultByPath(@PathVariable String key1, @PathVariable String key2){
    System.out.println("key1::"+key1);
    System.out.println("key2::"+key2);
}





위 코드는 같은 결과를 출력시키는 코드입니다.

단, 호출방식만 다를뿐...


각각 실행을 해보도록 하겠습니다.



GET방식호출 : https://localhost:포트번호/resultByGet?key1=a&key2=b




Pathvariable방식호출 : https://localhost:포트번호/resultByPath/a/b







다른방식이지만 같은 결과값이 출력되었습니다.


원하는 방법에 따라 사용하시면 되겠습니다.



출처: http://hellogk.tistory.com/85 [IT Code Storage]

'프로그래밍 > Spring' 카테고리의 다른 글

DispatcherServlet 설정  (0) 2019.01.03
Java Cofig 설정 1편  (0) 2018.12.07
mybatis 빈설정  (0) 2018.07.14
로그인 예제  (0) 2018.07.13
RSA 암호화 예제 2  (0) 2018.07.13
TAGS.

Comments