복붙노트

[SPRING] Spring map 요청 매개 변수를 POJO에 자동으로 매핑한다.

SPRING

Spring map 요청 매개 변수를 POJO에 자동으로 매핑한다.

많은 매개 변수를 포함하는 내 REST 컨트롤러에 메서드가 있습니다. 예 :

@RequestMapping(value = "/getItem", method = RequestMethod.GET)
public ServiceRequest<List<SomeModel>> getClaimStatuses(
        @RequestParam(value = "param1", required = true) List<String> param1,
        @RequestParam(value = "param2", required = false) String param2,
        @RequestParam(value = "param3", required = false) List<String> param3,
        @RequestParam(value = "param4", required = false) List<String> param4,
        @RequestParam(value = "param5", required = false) List<String> param5) {
    // ......
}

모든 GET 요청 매개 변수를 다음과 같은 POJO 객체에 매핑하고 싶습니다.

public class RequestParamsModel {

   public RequestParamsModel() {

   }

   public List<String> param1;
   public String param2;
   public List<String> param3;
   public String param4;
   public String param5;
}

REST Controller에서 @RequestBody를 사용하여 수행 할 수있는 작업이 필요합니다.

Spring 3.x에서 할 수 있습니까?

감사!

해결법

  1. ==============================

    1.가능하고 쉽게, 빈이 필드에 적절한 접근자를 가지고 있는지 확인하십시오. 속성마다 올바른 유효성 검사를 추가 할 수 있습니다. 적절한 병이 있는지 확인하십시오. 코드 측면에서 보면 다음과 같습니다.

    가능하고 쉽게, 빈이 필드에 적절한 접근자를 가지고 있는지 확인하십시오. 속성마다 올바른 유효성 검사를 추가 할 수 있습니다. 적절한 병이 있는지 확인하십시오. 코드 측면에서 보면 다음과 같습니다.

    import javax.validation.constraints.NotNull;
    
    public class RequestParamsModel {
    
        public RequestParamsModel() {}
    
        private List<String> param1;
        private String param2;
        private List<String> param3;
        private String param4;
        private String param5;
    
        @NotNull
        public List<String> getParam1() {
            return param1;
        }
        //  ...
    }
    

    컨트롤러 메소드는 다음과 같습니다.

    import javax.validation.Valid;
    
    @RequestMapping(value = "/getItem", method = RequestMethod.GET)
    public ServiceRequest<List<SomeModel>> getClaimStatuses(@Valid RequestParamsModel model) {
        // ...
    }
    

    요청은 다음과 같습니다.

    /getItem?param1=list1,list2&param2=ok
    
  2. ==============================

    2.너는하려고하니?

    너는하려고하니?

    @RequestMapping(value = "/getItem", method = RequestMethod.GET)
    public ServiceRequest<List<SomeModel>> getClaimStatuses(@ModelAttribute RequestParamsModel requestParamModel) {
    ...
    }
    
  3. from https://stackoverflow.com/questions/26612404/spring-map-get-request-parameters-to-pojo-automatically by cc-by-sa and MIT license