지난 게시판 spring mvc 프로젝트를 마친지 한 2주쯤 된 것 같은데, 다시 해보려고 한다. 한 번 한다고 기억나는 것이 아니기에 계속해서 반복하려고 한다. 글 정리해둔것을 보면서 하려했는데 따라가기가 쉽지가 않더라... 다시 세세하게 기록하면서 해야겠다. 이번에는 최소한만 찾아보면서 할 예정이다.
xml이 아닌 java 형식으로 진행할 것이다.
기존의 java세팅 하듯이 RootAppContext.java / ServletAppContext.java / SpringConfigClass.java 와 pom.xml 세팅해둔다.
kr.co.kang.controller package 안에 homecontroller 만들고 redirect:main 허나 main.jsp 가 없으므로 main.jsp 만들어준다. html 은 지난 프로젝트와 동일시 가도록 하겠다.
다음과 같이 있는데 bottom_menu.jsp 와 top_menu.jsp 는 각 html공통 부분이라서 include 폴더에 따로 빼놨다.
그리고 main.jsp 에서 그 자리를 다음과 같이 c태그를 이용해 WebContent 이후의 폴더부터 기입하여 import 해주었다.
<%@taglib prefix='c' uri="~~~core"%> 선언은 필수
top_menu.jsp 보면 이렇게 board_main 어쩌고 있는데 일단 board를 처리해주는 controller를 만들어준다.
requestmapping 으로 /board 일괄처리해주고 그 안에서 main 은 board/main.jsp 로 가게끔 하였다.
view 에서 board 폴더를 따로 만들어 준 것이다.
top_menu.jsp 인데 위에 봤던 것과는 다르게 href 를 board/main 그리고 위에 bepoz 부분은 href='main'으로 지정해두었다.
그런데 이렇게 하게되면 상대경로로 따지기 때문에 /board/main 으로 들어간 다음에 bepoz 버튼을 누르거나 다른 board/main 을 누르게되면, board/main 이나 board/board/main 으로 들어가게 된다. 그렇다고 href에 /main 이렇게 하게되면 절대경로로 인식이 되어 localhost:8080/main 이렇게 나오게 된다.
jstl 기능을 이용해 contextPath를 구해주어야한다. taglib prefix='c' uri="~~core"선언해 준다음에
<c:url var='root' value='/' />
를 해준다. 그럼 이제 / 의 주소로 가게된다. homecontroller 에서 main 으로 두었으니 첫 화면으로 갈 것이다. 이를 el를 이용해 ${root} 으로 표현한 것이다. 뒤에 / 붙으니 ${root}/board/main 로 작성하지 않아도 된다.
top_menu.jsp 에서 게시판 밑의 부분을 user/login 등으로 분류 해놓고 href세팅
UserController 생성
login 일단 만들고
login.jsp 생성하고 import 작업 c태그 작업 해준다. contextPath도 혹시 모르니 일단 해두었다.
나머지도 다 처리해준다.
<c:url var='root' value='/'/> 이것을 위와 같이 변경해준다. c:url 저걸로 하면 url에 sessionId가 뜨는 오류가 종종 생기기 때문이다.
메인 화면에서 맨 위의 글 보기 눌렀을 때에 게시판으로 가고 더보기 눌렀을 때에도 그쪽으로 가고, 글 읽었을 때에 목록보기와 수정하기도 링크 연결해주었다.
modify 의 수정완료와 취소 또한 해준다. board/main으로 달아주었다.
login 내의 회원가입은 user/join 으로 로그인하는 action 은 main으로
회원가입 후에는 user/login 으로.
데이터베이스를 사용한다 이제.
테이블은 다음과 같이 3개의 테이블
이 내용에 알맞은 bean을 만들어줄 것이다.
이제 mybatis 설정해준다.
WEB-INF/lib 폴더에 ojdbc6.jar을 세팅해준다.
WEB-INF 내에 properties 폴더를 만들어서 db.properties 를 file 형식으로 만들고 db 내용을 넣는다.
java형식은 쿼리문을 사용할 때에 interface 를 사용하는데 mapper 패키지를 만들어 임의의 mapper interface를 만든다.
ServletAppContext.java에 해당 정보를 기입해준다.
properties에서 파일을 가져다 쓰기 위해서 @PropertySource를 사용해준다.
@Value("${}") 통해 변수를 가지고온다.
그리고 밑에 이렇게 추가를 해준다. BasicDataSource는 import 시에 apache.commons.dbcp2로 import 해주어야한다.
앞서서 실수를 한 것이 있는데, pom.xml 세팅을 해줄 때에 repository 와 mybatis 관련을 추가를 안해주어서 추가해주었다. 여기에 첨부를 할테니 다음번 연습 때 사용하면 될 것 같다. 이제 이대로 실행 시에 오류가 없다면 정상적으로 작동하는 것이다.
일단 이건 요까지...
'공부 기록들' 카테고리의 다른 글
2020.05.23 mvc 프로젝트 다시하기(3) (0) | 2020.05.23 |
---|---|
2020.05.22 mvc 프로젝트 다시하기(2) (0) | 2020.05.23 |
2020.05.12 ssafy 자소서를 작성하였다. (0) | 2020.05.12 |
2020.05.09 2020 카카오 인턴 코딩 테스트를 보았다... (0) | 2020.05.09 |
2020.05.02 미니 프로젝트(完) (페이지 구현하기, 메인화면 처리하기) (0) | 2020.05.03 |