RESTful(1) - @PathVariable 사용하기
2019. 11. 25. 11:05ㆍ🔴 Spring
300x250
@PathVariable → URL경로에 변수 넣어주기
= RESTful 서비스의 URL형태
사용방법:
@RequestMapping의 URL 정의 & Method내의 파라미터 부분의 정의
→ @RequestMapping 어노테이션 값으로 {템플릿변수} 를 사용
→ @PathVariable 어노테이션을 이용해서 {템플릿 변수} 와 동일한 이름을 갖는 파라미터를 추가
⇒ RequestMapping에 있는 변수는 PathVariable이 적용된 동일한 이름의 파라미터에 매핑됨
*주의:
- null이나 공백값이 들어가는 파라미터는 적용 XXX
- @PathVariable으로 값을 넘겨받을때 값에 '.'가 포함되어 있으면 '.'가 포함하여 그 뒤가 잘려서 들어옴
예제
<memberList.jsp>
<script>
function delMember(idx){
if(confirm("삭제하시겠습니까?")){
//location.href='memberDelete?memberId='+idx;
location.href='delete/'+idx;
}
}
</script>
location.href를 통해 idx값을 url 뒷부분에 추가해서 보내는 것이다.
'delete/'주소는 변하지 않되 뒤에 idx는 delMember(idx)에서 주입되는 idx값에 따라 변하는 것이다.
<MemberDeleteController.java>
package com.bitcamp.mm.member.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.bitcamp.mm.member.service.MemberDeleteService;
@Controller
public class MemberDeleteController {
@Autowired
private MemberDeleteService deleteService;
@RequestMapping("/member/memberDelete")
public String delete(
@RequestParam("memberId") int id
) {
deleteService.memberDelete(id);
return "redirect:/member/memberList";
}
@RequestMapping("/member/delete/{idx}") -> delete?idx=어쩌구 대신 사용
public String del(@PathVariable("idx") int idx) {
deleteService.memberDelete(idx);
return "redirect:/member/memberList";
}
}
@PathVariable을 통해 'idx'값을 전달받았다.
'delete?idx=OOO' 이런식으로 값을 보내줄 수도 있지만 이렇게 @PathVariable을 사용하면 더 간편하다.
300x250
'🔴 Spring' 카테고리의 다른 글
RESTful(3) - JAXB2 API이용해서 XML처리하기 (0) | 2019.11.25 |
---|---|
RESTful(2) - XML/JSON 변환처리(@RequestBody, @ResponseBody, HttpMessageConverter) (0) | 2019.11.25 |
MyBatis를 이용한 DAO구현 (0) | 2019.11.20 |
MyBatis란? Spring + MyBatis 연동 (0) | 2019.11.20 |
컨트롤러 구현(3) - @CookieValue , @RequestHeader (0) | 2019.11.14 |