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

목표
상품 상세 페이지에 prd 테이블의 필드인 prd_id, prd_name, prd_img, prd_intrdc, prd_price에 저장된 정보 중 하나(where prd_id='Sf'를 뿌려준다.
 
상황
DetailActionController까지는 원활히 작동되지만(dao 객체까지 받아온다) 그 후 classcastexception 발생
 
문제
오류 상황
▼클라이언트
▼콘솔
22번 라인에 대하여 lee.BoardCommand가 lee.DetailCommand로 형변환 될 수 없다고 나온다.
문제가 된 /detail.jsp의 22번 라인의 코딩은 아래와 같다.
22 DetailCommand data=(DetailCommand)iter.next();
iter.next()를 형변환 할 수 없다고 하였으니
iter가 BoardCommand로 가져와진 모양이다.  19라인 코딩을 보면
19 Iterator iter=list.iterator();
list가 BoardCommand의 객체로 가져와진 게 아닐까 추정해볼 수 있다.
그렇다면 이 list는 어디서 왔냐?
17 ArrayList list=(ArrayList)request.getAttribute("list");
getAttribute로 가져왔다. 어디서? 그건 모른다.
 
문제1. detail.jsp의 getAtrribute는 어디에서 list를 가져왔는가?
17 ArrayList list=(ArrayList)request.getAttribute("list");
느낌상 Detail.xml에서 정의한 list2와 Board.xml에서 정의한 list를 혼동한 것 같다.
 
Detail.xml 의 id를 list2로 변경
▶DetailDAO(임플리멘트)를 list2로 변경
▶SqlMapDetail(상속받은애)의 id를 list2로 변경
▶DetailActionController의 list2로변경
 
1. /detail.jsp에서 오류가 발생했다고 하니까 일단 해당페이지로 이동하여 코드를 살펴본다.
2. getAttribute("list")부분에서 문제가 발생한 게 아닐까? 아마도 Board의 list 함수와 Detail의 list2함수가 햇갈려서 잘못된 문제인 것 같다. 
2-1. 일단 어디에서 getAttribute를 해서 list 객체를 를 받아오는지 확인해야한다. 아마도 DetailActionController에서 반환한 mav.addObject("list",list)의 list인 것 같다.
 
 
원인
detial.jsp의 17라인 getAttribute("list") 가 아니라 ("list2")였다.
 
해결
db 레코드 값은 안 나오지만 화면은 나오게 됐다.
 
해결하게 된 추론
형변환 에러가 났다는 부분에서 거슬러 올라가 보았다.
 
더 이해가 필요한 부분
detail.jsp의 17행, getAttribute("list")는 어디에서 값을 가져오는 것인가?
 
공부한 내용
ㅡ▶ list.jsp의 getAttribute "list"의 경우 ListActionController에서 키값을 전해주는 것이고
이 list는 DAO객체로부터 list 메서드를 받아오는 것이다.