DEVLOG

[Thymeleaf] @RequestParam, @PathVariable 예제 본문

Spring Boot

[Thymeleaf] @RequestParam, @PathVariable 예제

BINTHEWORLD 2022. 7. 20. 11:35

URL VS URI

URI는 URL의 의미를 품고있다.

URL(Uniform Resource Locator)은 자원이 실제로 존재하는 위치를 가리키며, URI(Uniform Resource Identifier)는 자원의 위치뿐만 아니라 자원에 대한 고유 식별자로서 URL을 의미를 포함한다.


@RequestParam

파라미터의 값과 이름을 함께 전달하는 방식으로 게시판 등에서 페이지 및 검색 정보를 함께 전달하는 방식을 사용할 때 많이 사용한다.

@PathVariable

URI에서 각 구분자에 들어오는 값을 처리해야 할 때 사용한다.

정리

1) @RequestParam 과 @PathVariable은 둘 다 uri를 통해 전달된 값을 파라미터로 데이터를 받아오는 역할을 한다.

2) @PathVariable은 값을 하나만 받아올 수 있으므로, 쿼리스트링 등을 이용한 여러 개 데이터를 받아올 때는 @RequestParam을 사용한다.

3) @RequestParam은 URI를 통해 전달된 값이 아니더라도, ajax 요청을 통해 body에 담아온 데이터를 여러 타입으로 받을 수 있다.


예제

1. @RequestParam으로 url의 값을 매개변수로 받고자 할 때

URI : http://localhost/admin/adminReviewView?rno=1

<td>
  <a th:href="@{/admin/adminReviewView(rno=${rList.rno})}" th:text="${rList.title}"></a>
</td>
@GetMapping("/admin/adminReviewView")
public String adminReviewView(@RequestParam("rno") int cno) {
  return "admin/adminReviewView";
}

2. @PathVariable으로 URI의 값을 매개변수로 받고자 할 때

URI : http://localhost/admin/adminReviewView/1

Thymeleaf에서는 아래 두 방법 중 하나로 url 경로를 지정할 수 있다.

<!-- 첫번째 방법 -->
<td>
  <a th:href="@{/admin/adminReviewView/{rno}(rno=${rList.rno})}" th:text="${rList.title}"></a>
</td>
<!-- 두번째 방법 -->
<td>
  <a th:href="@{'/admin/adminReviewView/' + ${rList.rno}}" th:text="${rList.title}"></a>
</td>
@GetMapping("/admin/adminReviewView/{rno}")
public String adminReviewView(@PathVariable("rno") int rno) {
  ...
  return "admin/adminReviewView";
}

🙆‍♂️출처🙇‍♂️

https://velog.io/@torang/URL%EA%B3%BC-URI%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

 

URL과 URI의 차이점

RESTFul API에 대해서 공부를 하다보면 URI라는 표현을 종종 사용한다. 언뜻보면 URL이랑 차이점이 없어보이지만 세세하게 따지고들면 엄연한 차이가 있다. 결론부터 말하면 URI는 URL의 의미를 품고

velog.io

https://byul91oh.tistory.com/434

 

@RequestParam과 @PathVariable?

컨트롤러에서 Requestparam으로 파라미터 값을 넘겨받을 때 사용하는 어노테이션 스프링에서는 컨트롤러로 사용할 클래스 상단에 @Controller를 지정합니다. 주로 사용하는 형태의 파라메터를 전달하

byul91oh.tistory.com

https://hooongs.tistory.com/234

 

[Spring Boot] Thymeleaf를 사용해 PathVariable 넘기는 방법

[Spring Boot] Thymeleaf를 사용해 PathVariable 넘기는 방법 CRUD에서 Create를 제외하고는 URL에 해당 객체의 id값을 넘겨주어서 구현을 해줄 수 있다. Spring Boot에서는 Controller에서 @PathVariable 어노테..

hooongs.tistory.com

 

Comments