개발 환경
전자정부표준프레임워크 3.7
JDK : OpenJDK 18(1.8)
DataBase : postgres 13.7( DBeaver 툴 사용)
DB 생성
DBeaver에 게시판을 만들기 위한 db가 만들어져있다고 가정하고 만듭니다
저는 이와같이 만들었습니다. pk는 num으로 설정하였습니다. 컬럼을 만들고 안에 2~3개 정도의 데이터를 입력합니다.
이클립스생성
이클립스를 열어봅니다. 저는 진행중이던 프로젝트가 있었기에 보이는 모양은 다를지라도 프로젝트는 만드는 것이 똑같을겁니다
오른쪽 마우스 - new - eGovFrame Web Project를 누릅니다!
순서대로 이름과 id를 결정하고 Next를 누릅니다,
체크박스에 체크를 하시고, finish를 누릅니다.
resourch 밑에 이와 같이 파일이 생성이 되었다면 잘 만들어졌습니다. 만약에 없을 시 다시 삭제하고 만들어줍니다
만들기 위한 준비
오늘은 main페인지를 만들어봅니다
main 밑에 java 에다가 폴더를 생성할거예요 폴더는 main/java/co/kr/board를 만들어줍니다. Ctrl+n 을 눌러 folder을 만들어줍니다
제가 진행할 프로젝트는 MVC 모델로 CRUD를 제작할 예정입니다.
제가 만들 프로젝트 구조는 그림으로 설명하자면 이와 같습니다.
Filter에서 사용자의 요구사항(web 등) 들어오면 Controller를 걸쳐 System - System Implement를 지나쳐 Mapper - DATABASE에서 필요한 데이터를 꺼내어 다시 mapper - System Implement-System- Controller를 통하여 사용자에게 보여줍니다.
System과 Mapper는 c언어에서 Header파일과 비슷한 역할로 단지 사용하겠다고 선언을 해주는 역할을 합니다.
System은 Controller와 System Implement의 연결해주는 다리이고,
Mapper는 System Implement와 DataBase를 연결해주는 다리라고 생각하시면 이해하기 쉽습니다.
하면서 더 설명하겠습니다.
그림을 보며 만들면 편합니다.
위 그림을 보며 폴더를 생성합니다.
위 그림처럼 Controller와 System Implement는 Class, System과 Mapper는 Interface이기때문에 Ctrl+n하여 만들어줍니다.
Controller = BoardController
System = BoardSystem
System Implement = BoardImpl
Mapper = BoardMapper 로 만들었습니다.
제작하면 이렇게 됩니다. web 밑에 Controller, service에는 Service, Impl에는 Service Implement와 Mapper입니다.
이제 서로 연결해주는 코드를 작성합니다.
<Controller>
package co.kr.board.web;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import co.kr.board.service.BoardService;
@Controller //어노테이션으로 이러한 역할을 한다고 지정
public class BoardController {
@Resource(name = "boardService")
private BoardService service; //BoardService와 연결하며 service는 해당 파일 내에서 사용할 이름
}
<Service Implement>
package co.kr.board.service.impl;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import co.kr.board.service.BoardService;
@Service("boardService") //Service의 역할을 하며 boardService 별명
public class BoardServiceImpl implements BoardService{ //BoardService의 상속을 받음
@Resource(name = "boardMapper")
private BoardMapper mapper;
}
implemnents는 상속이라는 의미로, BoardService의 상속을 받는다는 의미에여~
<Mapper>
package co.kr.board.service.impl;
import egovframework.rte.psl.dataaccess.mapper.Mapper;
@Mapper("boardMapper") //Mapper역할을 하며 별명은 boardMapper로 지정
public interface BoardMapper {
}
Context 변경
Context는 위에 사진에 있던 것처럼 src > resources > egovframework > spring 부분에 있습니다!
<Context-common>
*변경 전
Controller ~ Mapper가 있는 패키지를 작성합니다.
*변경 후
<Context-mapper>
* 변경 전
9번째 줄은 sqlmap의 경로를 작성합니다 저희가 사용할 DB는 따로 추후에 작성할테니 경로를 저와 같이 설정하면 됩니다.
14번째 줄은 저희가 만든 폴더 impl의 경로를 작성합니다.
* 변경 후
<dispatcher-servlet>
* 변경 전
제작했던 package로 설정해줍니다.
* 변경 후
* 변경 전
오류가 생겼을 때 나타나는 부분이라 주석처리를 안하면 오류가 안뜹니다.
주석처리는 하고싶은 부분을 드래그 하여 ctrl + shift + c 입니다.
* 변경 후
* 변경 전
이 부분은 추후 main과 crud를 제작합니다. 그 부분의 경로를 작성합니다.
* 변경 후
<WEB.xml>
web.xml은 src >webapp > WEB-INF 에 있습니다.
* 변경 전
이 부분은 웹에러 404, 500 에러일 때 나타내는 에러로 주석처리해야 보여서 미리 주석처리합니다!
* 변경 후
main 페이지 작성
webapp > WEB-INF > jsp에 main.jsp를 생성합니다.
JSP File로 지정해주시고, 이름은 main으로 합니다. main에는 아무 말 작성합니다.
jsp아래에 main이 있는 것을 확인하고, index.jsp를 들어갑니다.
* 변경 전
첫 페이지를 설정하는 부분입니다 egovSampleList.do를 main.do로 변경합니다.
* 변경 후
그리고 Controller로 이동합니다.
main을 사용하겠다고 매핑시킵니다.
작성했던 부분 아래에 위와같은 코드를 추가합니다.
//메인설정
@RequestMapping(value = "/main.do") //요처한 url이 value값이랑 같다면 아래 코드를 실행
public String main(){
return "main";
}
controller의 코드는 더보기에서 보실 수 있습니다.
package co.kr.board.web;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import co.kr.board.service.BoardService;
@Controller //어노테이션으로 이러한 역할을 한다고 지정
public class BoardController {
@Resource(name = "boardService")
private BoardService service; //BoardService와 연결하며 service는 해당 파일 내에서 사용할 이름
//메인설정
@RequestMapping(value = "/main.do") //요처한 url이 value값이랑 같다면 아래 코드를 실행
public String main(){
return "main";
}
}
메인까지 확인하고, 잘 되었는지 확인할려면 서버를 연결합니다.
결과 확인
일단 열기위해 서버를 실행시킵니다.
Next를 눌러 자기가 설정한 서버이름이 왼쪽에 있는것을 확인하고, finish를 누릅니다.
만들어진 서버를 더블클릭하고, edit를 눌러 path를 /로 변경한 후 저장합니다.
그 후 서버를 실행시키고, 웹브라우저에 'localhost:8080'을 쳐서 들어갑니다,
그러면 자신이 만든 메인을 확인할 수 있습니다. 이제 crud를 만들어보겠습니다!
'언어 > Egov' 카테고리의 다른 글
[전자정부표준프레임워크] 페이지 만들기(Map형태) #4 (0) | 2022.08.19 |
---|---|
[전자정부표준프레임워크] 페이지 만들기(Map형태) #3 (0) | 2022.08.18 |
[전자정부표준프레임워크] 페이지 만들기(Map형태) #2 (0) | 2022.08.17 |
[전자정부표준프레임워크] DB설치 (0) | 2022.08.12 |
[전자정부표준프레임워크] 전자정부표준프레임워크 설치 (0) | 2022.08.12 |