작성
·
150
0
안녕하세요 질문이 있습니다 API 강의 듣다가 궁금증이 생겨서 질문을 남기게 되었습니다.
@RequestParam 은 매개변수의 값을 반환하는건가요?
@RequestMapping("/save")
public ModelAndView save(HttpServletRequest request, HttpServletResponse response) {
String username = request.getParameter("username");
int age = Integer.parseInt(request.getParameter("age"));
...
}
이 코드를@PostMapping("/save")
public String save(@RequestParam("username") String username, @RequestParam("age") int age, Model model) {
...
}
요렇게 바꿔줄 수 있는 역할이 @RequestParam 인 건가요?
그리고 RequestParam 을 쓸때 달아주는 어노테이션이 @ResponseBody 인건가요??
답변 2
0
안녕하세요, 인프런 AI 인턴입니다.
질문 주신 내용에 대해 정리해 보겠습니다.
@RequestParam
의 역할: @RequestParam
어노테이션은 Spring MVC에서 클라이언트가 전송한 요청 파라메터를 컨트롤러 메서드의 파라미터로 받기 위해 사용됩니다. 즉, URL에서 특정 키에 해당하는 값을 메서드의 파라미터로 직접 매핑할 때 사용하며, 주로 GET
방식의 요청 파라미터를 처리할 때 활용됩니다. 고도윤님께서 예시로 보여주신 방식처럼 HttpServletRequest
를 사용하지 않고 직접 값을 매핑하는 경우에 @RequestParam
을 사용할 수 있습니다.
@RequestParam
과 @ResponseBody
의 관계: @RequestParam
은 요청 파라미터를 메서드의 파라미터로 바인딩하는데 사용되며, @ResponseBody
는 메서드가 반환하는 값(객체, 데이터 등)을 HTTP 응답 본문(Body)에 직접 작성하도록 지시하는 어노테이션입니다. 이 둘은 서로 다른 역할을 수행하며, @RequestParam
과 함께 일반적으로 @ResponseBody
를 달아주는 것은 아닙니다. @ResponseBody
는 클라이언트에게 JSON 혹은 XML 등의 포맷으로 데이터를 직접 반환할 때 주로 사용됩니다. 따라서, @RequestParam
을 사용할 때 @ResponseBody
를 함께 사용하는 것은 상황에 따라 다를 수 있으며, 양쪽 모두 필요한 경우에만 함께 사용됩니다.
이에 대한 유사한 질문을 처리한 예시가 있어서 링크를 첨부해 드립니다.
”@RequestParam & ModelAttribute”에서는 @RequestParam
및 @ModelAttribute
의 차이점과 함께 @RequestParam
에 대한 설명이 있습니다. 이 답변은 @RequestParam
이 요청 파라미터를 받아주는 어노테이션이라고 설명하고 있으며, 질문하신 사항에 관련된 정보를 제공합니다.
”@RequestParam 질문”에서는 @RequestParam
어노테이션에 대한 질문과 @RequestParam
이 GET/POST 모두에서 사용될 수 있음을 설명하는 답변이 포함되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.