JAVA/Spring Framework

MultipartFile 객체의 함정

Tech Signal 2020. 10. 13. 21:30

@WebApplicationConfiguration: 메타어노테이션, composite annotation

@ContextConfiguration : 웹 서버를 돌리지않고 webApp 구현체를 만들어주는 역할 

@WebAppConfig 붙어야 웹앱 됨.

@Transactional. Advisor가 테스트 케이스에 위빙됨, 자동커밋됨


@ControllerAdvice

모든 컨트롤러를 대상으로 weaving된다. 컨트롤러가 동작할 땐 언제나 얘가 계속 조회된다.

 

multipartfile: 비어있는 멀티파트 걸러지지않음. 첨부파일 추가하지 않아도 채워져버림. 

=> 커맨드오브젝트의 책임은 핸들러어댑터가 진다. 데이터바인드 설정만 바꿔주면 비어있는 파트 해결 가능함. 

 

BUT 게시판에서 3개의 첨부파일이 1개의 동일한 input 태그를 쓰고있어서 데이터바인드가 동작하지 못하고 있음. -> 다른 방법을 찾아야함. 

@ControllerAdvice
public class OthersRetrieveControllerAdvice {
	@Inject
	IOthersDAO othersDAO;
	
	@ModelAttribute("lprodList")
	public List<Map<String, Object>> getLprodList() {
		return othersDAO.selectLprodGuList();
	}
	
	@ModelAttribute("buyerList")
	public List<BuyerVO> getBuyerList(){
		return othersDAO.selectBuyerList();
	}
	
  	 @InitBinder
	public void dataBind(WebDataBinder webDataBinder) {
		webDataBinder.setBindEmptyMultipartFiles(false);
	}
}