20/11/5 1.상품 상세 페이지에 db 레코드를 뿌리려 할 때 classcastexception 발생

목표
 
 
상황
 
 
문제
lee.BoardCommand가 lee.DetailCommand로 형변환 불가능하다는 에러가 발생
도무지 BoardCommand를 호출한 적이 없는데 어디서 바꿔치기 됐는지 알 수가 없음
 
원인
Detail.xml에서의 반환자료형(board2)이 board2가 아니라 board로 되어서 BoardCommand(dto)의 자료형으로 반환되었기 때문.
 
해결
 
해결하게 된 추론
강사님께 BoardCommand가 어디에서 생성되어 넘어오는지 모르겠다고 도움을 청했다. 경로를 확인해보았다고 말씀드림.
 
공부한 내용
SqlMapConfig.xml에서 typeAlias의 소관을 이해하였다. <typeAliases>태그에서 dto파일을 불러오며, 그 dto파일에 별칭을 부여한다. ▶ 이 객체?가 Detail.xml에 전달된다. ▶ Detail.xml에서 sql구문이 담긴 정보가 id값을 통해 여기서 문제 발생!!! SqlMapDetailDao.java로 넘어가게 된다. ▶ 이것이 controller로 넘어가게 되고 mav 통해 view인 jsp에 전달된다.
여기서 문제 발생!!! → 단순히 sql구문이 전달된다고만 생각해서 문제가 발생했다. sql구문을 실행한 결과값이 반환형을 통해 전달된다. 이 때의 반환형을 통째로 주는 경우 그것은 dto.java파일이다.
 
  • 문제가 있을 경우 System.out.println(" ")을 하여 콘솔에 출력하는 방법을 
 
더 이해가 필요한 부분