2023. 5. 21. 00:24ㆍProgramming/기술 정리
이번 게시물의 주요과제는 어떤 VO가 Backend단에서 정상적으로 데이터를 전송 받을수 있는지 였다.
나의 경우 처음에는 일반 value로 VO로 받기 위해 생성하였다가 오류가 발생하였다.
첨부파일도 전송되고, 테이블에도 정상적으로 insert되었지만 최종적으로는 에러로그가 나타났던것이다.
그 해결 방법은 다음과 같다.
@Data
public class TestVO implements Serializable{
private String title;
private String contents;
/*
프론트 단에서 JSON.Stringyfy(obj)형태로 전송했으므로, VO도 String 형태가 된다.
이후에 다시 Serivce단에서 ObjectMapper를 이용하여 객체화 시켜줘야함
*/
private String obj;
/*
JsonIgnore 어노테이션을 붙여주지 않으면 후에 VO가 프론트로 json형태로 다시 return 해주는 과정에서 오류가 발생한다.
따라서 @JsonIgnore를 붙여주어야 함
*/
@JsonIgnore
private List<MultipartFile> fiel1;
/*
N대 N의 첨부파일을 가지기 위한 file2 변수
*/
@JsonIgnore
private List<MultipartFile> file2;
}
+) 일반적으로 첨부파일을 Controller로 넘기는 방법을 구글링해보면 파라미터를 @requestParam을 통해 직접적으로 받는 경우가 많다. 그러나 이는 첨부파일이 증가할 수록, 유지보수 하기 힘들다고 생각한다. 따라서 파라미터는 VO로 관리하는 것이 클린코드를 지향하는 방법인거 같다.
+) 단, fiel1과 같이 List<MultipartFile> 타입의 첨부파일 변수명과, 프론트단에서 전송하는 첨부파일의 변수명과 일치해야 함을 잊지말자.
'Programming > 기술 정리' 카테고리의 다른 글
[JAVA] Mybatis, Ibatis LIST 파라미터 전달하기 (0) | 2023.06.16 |
---|---|
[Java] Null pointer exception 해결하기, 문자열 null 체크하기. 빈객체 체크하기 (0) | 2023.05.30 |
[javascript] 게시판 작성하기2 - 일반 value, 동적인 key를 가진 obj, 파일전송 함수 구현하기 (0) | 2023.05.15 |
[javascript] 게시판 작성하기1 - 파일 다중 첨부 기능 구현하기(프론트) (0) | 2023.05.14 |
[javascript] 동적인 key와 value를 가진 json 객체 만들기 (0) | 2023.05.10 |