(TIL) 4/15 Spring 파라미터값

IT_JANG·2025년 4월 15일

어노테이션

  • 매핑
    • @RequestMapping("주소")
      • 요청 주소를 처리할 메서드를 매핑하는 어노테이션

      • GET/POST 가리지 않고 매핑 -> (속성을 통해서 지정 가능 or 다른 어노테이션 이용)

        	@RequestMapping(value="test", method = RequestMethod.GET)
        	@RequestMapping("test") // /test 요청 시 testMethod가 매핑하여 처리함
    • @GetMapping("주소")
      • Get(조회) 방식 요청 매핑
    • @PostMapping("주소")
      • Post(삽입) 방식 요청 매핑
    • @PutMapping("주소")
      • Put(수정) 방식 요청 매핑 (form, a태그 요청 불가)
    • @DeleteMapping("주소")
      • Delete(삭제) 방식 요청 매핑 (form, a태그 요청 불가)
  • 파라미터 값 얻어오기
    • HttpServletRequest (Servlet 표준)
      • 자바 표준 서블릿 객체로 요청값 수동 추출

        public String paramTest1(HttpServletRequest req) {
            String inputName = req.getParameter("inputName");
        }
    • Model (Spring 전용)
      @GetMapping("/example")
      public String example(Model model) {
          model.addAttribute("product", "커피잔");
          model.addAttribute("price", 3000);
          return "exampleView";
      }
    • @RequestParam()
      • 자동 형변환

      • @RequestParam("key") 자료형 매개변수명

      • 속성
        - value : 전달받은 input 태그의 name 속성값(파라미터 key)
        - required : 입력된 name 속성값 파라미터 필수 여부 지정(기본값 true)
        - required=true인 파라미터가 존재하지 않는다면 400(Bad Request) 에러
        - defaultValue : 파라미터 중 일치하는 name속성값이 없을 경우에 대입할 값 지정
        - required=false 인 경우 사용

        // 단일 값
        public String paramTest2(@RequestParam("title") String title)
        
        // 속성 추가
        @RequestParam(value="publisher", required = false, 
        							defaultValue = "kh출판사") String publisher)
        
        // 복수 값(배열, 리스트)
        public String paramTest3(@RequestParam("color") String[] colorArr,
                                 @RequestParam("fruit") List<String> fruitList)
                                 
        // 모든 파라미터 key-value로 한번에                       
        public String paramTest3(@RequestParam Map<String, Object> paramMap)
    • @ModelAttribute()
      • 정의
        • DTO (또는 VO)와 같이 사용
        • 파라미터의 name값이 DTO의 필드명과 같다면 자동 setter 호출
        • @ModelAttribute 를 이용해 값이 필드에 세팅된 객체를 "커맨드 객체"라고 부름
        • @ModelAttribute 생략 가능!
      • 주의사항
        • DTO에 기본 생성자 필수
        • DTO에 setter가 필수
      • 형태
        public String paramTest4(@ModelAttribute MemberDTO inputMember){}
        public String paramTest4(MemberDTO inputMember){}

0개의 댓글