728x90

    럭키-[이모티콘]어밴드

     

    스프링에서는 컨트롤러로 사용할 클래스 상단에 @Controller 지정하며

    유용하게 사용할수 있는 기능들이 있다.

    그중에 @RequestParam에 대해서 알아볼까합니다.

     

    1. 단일 파라미터 변환

    private ModelAndView request_TEST(@RequestParam("test") int num,
    @RequestParam("test2") String str)){
    //위처럼 하나이상의 타입을 적용할수 있습니다. 스프링에서 지원하는 변환기에서 지원되는 모든타입을 변환가능합니다.
    //RequestParam은 하나이상 파라미터에서 사용가능합니다.
    }
    

     

     

    참편리하죠? 하지만 단점이 있습니다.

    위처럼 사용하게 된다면 만약에 넘어오는 requestParam중에

    @RequestParam 지정한 키값이 존재하지 않다면

    BadRequest로 http 4** 에러가 발생합니다.

     

    2. 이를 방지하기 위하여 필수적이지 않도록 

    그리고 존재하지 않다면 DefaultValue를 지정할수 있습니다.

    private ModelAndView request_TEST(@RequestParam(value="test", required=false, defaultValue= "0") int num,
    	@RequestParam("test2") String str)){
    //required=false로 지정하면 해당 키값이 존재하지 않다고 해서 BadRequest가 발생하지 않게 됩니다.
    //그리고 존재하지 않다면 num변수에 default로 0이 들어가게됩니다.
    }
    

     

     

    파라미터가 많아지게 되면 일일이 파라미터를 지정하는게 귀찮아 집니다.

    이를 Map으로 간단하게 받아올수 있습니다.

     

    3. RequestParam을 map에 지정하여 사용하기.

    private ModelAndView request_TEST(@RequestParam HashMap<string,string> paramMap)){
    		String data = paramMap.get("testParam");
    }
    

    위의 예시처럼 map을 통해서도 파라미터를 컨트롤 할수 있습니다.

    대규모의 파라미터를 받는데 map을 사용하기엔 편하지만

    개발한 이외의 사람들이 유지보수하기에는 어려운 점이 있습니다.

    그래서 주로 "커맨드패턴"인 데이터커맨드를 만들서 사용하는데요.

     

    4. 데이터 커맨드 사용하여 파라미터 변환하기.

    데이터 커맨드에 대해서는 위의 링크에서 자세히 설명하였습니다.

     

     

    지난 포스트가 궁금하시다면 

    ↓ 아래 링크를 클릭해주세요. ↓

    [스프링] Context의 등록되는 빈의 순서를 정하자 - @DependsOn

     

    다음 포스트가 궁금하시다면 

    ↓ 아래 링크를 클릭해주세요. ↓

     

    '공감'버튼 및 '좋아요'는 글쓴이에게 큰 힘이 됩니다!

    (클릭)블로그 구독도 부탁드립니다.(네이버이웃 추가)

     

     

    Posted by 천상나타