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) {
}
}
'JAVA > Spring' 카테고리의 다른 글
[JAVA] Map으로 전달 받은 JsonData List 목록(값) 추출하기 (0) | 2023.11.16 |
---|---|
[API] Spring boot + Swagger 3 (SpringDOC, OpenAPI) 적용 및 사용법 (2) | 2023.11.13 |
[Spring] Spring boot - application.yml 값 변수로 사용하기 (0) | 2023.01.16 |
[Spring] context:component-scan 사용법 (0) | 2022.12.16 |
[API] Swagger @ApiResponse Multi 사용법 (0) | 2022.12.16 |