프레임워크/Spring

@RequestParam과 @PathVariable

내이름은 킹햄찌 2022. 5. 24. 22:38

@RequestParam와 @PathVariable가 비슷하게 생기는 바람에 착각해서 머리가 터질뻔해서 정리를 해두면 기억에 오래 남을 것 같아서 기록하게 되었습니다.

둘다 Controller에서 파라미터를 넘겨 받을때 사용합니다.

 

 

@RequestParam

Controller에서 파라미터를 넘겨받을때 사용

@GetMapping("/member/memberInfo")
	public String memberInfo(@RequestParam(value = "member",required = false)Member member,Model model){
	        log.info("member info : " + member.getNickname());
	        model.addAttribute("member",member);
	        return "member/memberInfo";
	 }

위와같이 사용하여 정보들을 넘겨 받을때 사용함

파라미터의 키 값이 없을때를 대비하여 required = false 옵션을 추가해줄 수 있다.

 

 

 

@PathVariable

www.localhost8080/post/2/update 과 같은 url에서 파라미터를 받기위해 사용함

@GetMapping("/post/{postId}/update")
    public String updateForm(@PathVariable("postId") Long postId, Model model){
        Post post = postService.findOne(postId);
        PostDto postDto = new PostDto();
        postDto.toDto(post);
        model.addAttribute("postDto",postDto);
        model.addAttribute("postId",postId);
        return "post/postUpdate";
    }

post/{postId}/update에서 {postId} 부분에 있는 파라미터를 받을 수 있다

rest api에서 많이 사용됨