본문 바로가기

JAVA/Spring

[Spring] JAVA - formData 이용하여 여러 개의 Entity(값/객체) 전송/전달 하기

 

 

 

formData 로 file 뿐만 아니라 일반 Entity 객체도 여러개 전송 가능하다.
메인 Entity 에 List<> 로 담아서 전달하는게 편하긴 하지만 이 방법도 있다~ 하고 올려본다.

 

Multipart/Form-data 로 객체 전송 / 전달 하기.

 

 

1. Front

 

const Sample = async () => {

      const formData = new FormData();

      formData.append(
        "info",
        new Blob([JSON.stringify(info)], { type: "application/json" })
      );

      if (list.length > 0) {
        list.forEach(() =>
          formData.append(
            "list",
            new Blob([JSON.stringify(list)], { type: "application/json" })
          ));
      }
       	$axios
          .post(경로, 
            formData,
            {
              headers: { "Content-Type": "multipart/form-data" },
            }
          )
          .then(() => {
            alert("저장이 완료되었습니다.");
            goToList();
          })
          .catch((err) => {
            console.log(err);
            alert("저장에 실패하였습니다.");
          });
      }
};

 

 

formData.Blob 에 담아서 전달하기.

여러개의 List 일 경우 for문으로 돌려서 담아주면 된다.

post 외에 다른 HTTP프로토콜도 동일하다.

 

 

 

2. Back

 

@PostMapping(value="/sample")
public ResponseEntity<Object> createSample(@RequestPart(value="info", required=false) Sample sampleVo,
        @RequestPart(value="list", required=false) SampleList[] list) {
}

 

 

@RequestPart 를 이용해서 받아준다.

requestPart는  multipart/form-data, JSON 데이터를 처리할 때 주로 사용한다.

 

 

 

반복문은 for문 돌려서 처리해주면 된다.

 

if(list != null) {
    for(SampleList list : list) {
        
    }
}