8. 상세페이지 뿌려주기
db내용 메모
[x]1) index.jsp를 새로 만들어서 에 새로운 요청명령어 등록 : 상품 상세페이지 요청
[x]2) web.xml 할일없음
ㄱ.
[x]3) board-servlet.xml에서 요청명령어에 따라 처리해주는 DetailActionController 설정
4) DetailActionController 제작
[x]ㄱ. 어노테이션 @Controller, @Autowired(Board dao), @RequestMapping("/detail.do") 설정
ㄱ-1. 에러발생 controller is not an annotation type https://galid1.tistory.com/506 ▶ import부분 삭제
[x]ㄴ. dao의 내용을 list에 담아옴
[x]ㄷ. modelandView를 통해 전달
[x]ㄹ. return함
5) detail.jsp 에서 뿌려줌
[x]ㄱ. list를 getAttriube 하여 받아옴
[x]ㄴ. while문을 통해 dto의 내용을 받아옴
[x]**추가** 레코드를 가져올 dto가 BoardCommand가 아니라, DetailCommand이다!
[x]ㄷ. getter메서드로 가져옴
[x]ㄹ. jsp에 뿌려줌
[]6) dataAccessContext-local.xml 할 일 없음
[]7) SqlMapConfig.xml 할 일 없음
**추가**
SqlMapConfig.xml에서 테이블별로 <mapper> 태그로 추가해야한다.
[x]그렇단 얘기는 Board.xml도 새로 만들어야하는 것이고
[x]DetailCommand도 새로 만들어야하는 것이고
[x]BoardDAO 인터페이스도 작성해야하고
[x]ㄴ를 상속받은 Dao를 작성해야한다.
간단한 crud이므로 Mybatis2로 작성해보도록한다.
근데 Mybatis2로 작성하면 전부다 Mybatis2로 작성해야한다고한다. (두개짬뽕이 불가능하다)
Mybatis2는 sql구문도 그대로 작성할 수 있는 이점이 있고, 환경설정이 쉬우므로 Mybatis2로 진행하기로한다.
그러기위해서는 기존 파일을 Mybatis2로 수정해야한다.
9. Mybatis2로 전환하기 20/10/28(14) 2. SpringMember.war (mybatis2, @insert... , 페이징처리)
환경설정이 잘 될지 알수 없으므로, 리스트 보기까지 수행했던 백업파일 MyTest3에서 Mybatis2로의 진행을 진행한다.
Mybatis2란? xml을 파일로 불러오지 않는 환경설정을 말한다! ~Dao에서 sql구문의 결과를 받아서 처리한다!
해야할 일
1. dataAccessContext-local.xml에서
[x]ㄱ.<property>(값을 WEB-INF/SqlMapConfig.xml로 가지는) 태그 삭제
[x]ㄴ.SqlSessionTemplate 빈즈를 삭제한다.
[x]ㄷ.코드추가(이 Dao는 sql구문이 적힐 파일을 말한다)
<bean id="memberDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
<property name="mapperInterface" value="dr.mini.dao.MemberDao" />
</bean>
[]3. impl과 SqlMapCong.xml파일(쿼리문 적힌 xml파일을 로드하는 파일), Board.xml이 삭제되고(필요가없다)
[x]4.memberDao(인터페이스)에 Board.xml에 적었던 @Select 등의 어노테이션을 사용해서 쿼리문을 작성한다.
▷ 500에러로 DI에 실패했다는 에러가 뜨는데 어떻게 고쳐야할지모르겠다... MyTest3파일 . 강사님께 여쭤본다.
뭘..햇는지 햇갈리는데.. 환경설정을 잔뜩 했어요...
에러 발생 (xml파일의 id값에 부주의해서 생긴 에러)
threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException
mapper에서 같은 id를 사용할경우 나는 에러라고한다.
Detail.xml 의 id를 list2로 변경
▶DetailDAO(임플리멘트)를 list2로 변경
▶SqlMapDetail(상속받은애)의 id를 list2로 변경
▶DetailActionController의 list2로변경
컨트롤러는 모두 무사히 통과되었고, Null 떨어짐
11/4
목표 1. : 상품 정보를 화면에 뿌린다.
목표 2. :
'X 1인웹개발' 카테고리의 다른 글
20/11/4 1. 상품 상세 페이지에 db 레코드를 뿌리려 할 때 NullPointerException 발생 (0) | 2020.11.08 |
---|---|
20/11/3 (0) | 2020.11.08 |
20/11/02 집 컴퓨터에 환경설정과 db삽입 (0) | 2020.11.08 |
20/10/30 11. [보류] 글작성 화면, 상세페이지 화면. (0) | 2020.11.08 |
20/10/28-29 10. 게시판에 뿌리기 (0) | 2020.11.08 |