SpringBoot 백엔드에서 프런트엔드 전송 개체 매개변수를 적용합니다.

6256 단어 springboot

SpringBoot 백엔드에서 프런트엔드 전송 개체 매개변수를 적용합니다.


최근에 SpringBoot 프런트엔드 전달 매개 변수를 사용하여 백엔드에 구덩이를 밟아 공유합니다.
  • 코드 클래스
  • @Data
    public class ArticleVo {
        @JsonProperty(value = "name")
        private String name;
        @JsonProperty(value = "author")
        private String author;
        @JsonProperty(value = "publichouse")
        private String publicHouse;
    }
    

    주의: 일반적인 규범에 따르면 전단이 전달하는 매개 변수는 대상과 일일이 대응하는 것이 가장 좋고, 그렇지 않으면 @JsonProperty(value="**")의 주석을 붙인다
    백엔드에서 받은 코드
    @PostMapping  ("/selective")
        @ResponseBody
        public Map<String, Object> searchSelective(@RequestBody(required = false) ArticleVo articleVo){}
    

    @RequestBody를 사용하려면 Post를 사용해야 합니다. get 인자를 사용하면 전달되지 않습니다.
    전단 aax 전달 매개 변수
    $("#search").click(
                function () {
                    var adata = {
                        "name" : $("input[ name='title' ]").val(),
                        "author" : $("input[ name='author' ]").val(),
                        "publichouse":$("input[ name='publichouse' ]").val()
                    }
                    var data=JSON.stringify(adata);
                    $.ajax({
                        type : "post",
                        data: data,
                        url : "/search/selective",
                        headers : {"Content-Type" : "application/json;charset=utf-8"},
                        success : function(data) {
                            if (data.success) {
                                handleList(data.articleList);
                            }
                        },
                        error :function () {
                            alert(" ")
                        }
                    });
                }
    

    위에서 전달한 매개 변수는 반드시 JSON을 사용해야 한다.stringify(paramdata); 방법은 파라미터를 json 형식의 문자열로 변환하기;SpringBoot에서 @RequestBody 주석은 json 형식의 문자열이어야만 파라미터를 주입할 수 있기 때문에, 두 번째는 요청에 요청 헤더를 가져가야 합니다. 그렇지 않으면 오류가 발생합니다.
    org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported
    

  • 좋은 웹페이지 즐겨찾기