본문 바로가기

Backend/Spring

7. STS / @PathVariable @RequestParam

@PathVariable은 스프링 3 이후부터 지원되는 기능

페이지를 전환할 때에도 특정 파라미터값을 유지해야할 경우에 주로 사용

 

 

@PathVariable vs @RequestParam

@RequestMapping 어노테이션 값으로 {템플릿변수} 를 사용합니다.

@PathVariable 어노테이션을 이용해서 {템플릿 변수} 와 동일한 이름을 갖는 파라미터를 추가하면 됩니다.

RequestMapping 어노테이션에 변수를 포함하고 있구요.

이들 변수는 @PathVariable 어노테이션이 적용된 동일한 이름을 갖는 파라미터에 매핑됩니다.

출처: https://sarc.io/index.php/development/1145-pathvariable

 

 

이렇게  PathVariable에 "userId"를 던져주면 깔끔하게 기본url + 지정한 value + 파라미터값으로 변수를 넣어줄 수 있다. http://localhost:9090/mybatis04/

가 기본페이지고

지금 위와같은 경우에 userView 에 해당하는 컨트롤러로 userid값을 넣으면 해당 유저정보를 받아온다.

RESTful 서비스의 URI 형태

 

예) user6의 정보를 가져오기 users/user6 을 입력하면 이렇게 정보가 userDto의 정보가 json화되어 넘어온다. 

 

인덱스에서 fn_userView(제이슨 데이터가져오는 ajax 함수)에 userView를 같이 연결시켜주었고

function userView(obj) {

$('input:text[name="userId"]').val(obj.userId);

$('input:text[name="name"]').val(obj.name);

$('input:radio[name="gender"][value="'+ obj.gender +'"]').prop('checked', true);

$('select[name="city"]').val(obj.city).prop('selected', true);

}

이렇게 하나씩 꺼내서 넣어줬기 때문에 index에서도 이렇게 보기좋게 나오는 것.

 

@PathVariable 사용시 주의할 점

1. null이나 공백값이 들어가는 파라미터는 인식할 수 없으니 적용 x

2. Spring에서 값에 " . "이 포함되어있으면 .포함 그 뒤가 싹 날라간채로 들어옴