전자정부표준프레임워크 eGov :

Sample예제 기본적인 흐름 분석하기.

 

먼저 알아둘 것 !

- web.xml : src/main/webapp/WEB-INF/web.xml

Filter : encodingFilter, HTMLTagFilter

Context-config : contextConfigLocation (classpath*:egovframework/spring/context-*.xml)

src/main/resources/egovframework/spring/context-*.xml

Servlet : action (추가로 아래와 같은 xml파일을 contextConfigFile로 참조하고있음)

/WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml

/WEB-INF/config/egovframework/springmvc/urlfilename-servlet.xml

Welcom-file-list : index.jsp

src/main/webapp/WEB-INF/index.jsp

Error-page : java.lang.Throwable, 404, 500

 

 

1. src/main/webapp/WEB-INF/web.xml : <welcome-file-list>에서 설정한 index.jsp로 이동.

 

2. /sample/egovSampleList.do로 포워딩.

 

3. egovframework.rte.sampel.web.EgovSampleController.java - selectSampleList가 /sample/egovSampleList.do로 매핑되어있음.

searchVo는 무엇인가?

egovframework.rte.sample.service.SampleDefaultVo 객체, 검색조건, keyword, 검색여부,

현재 페이지, 페이지 갯수, 페이지 사이즈, 최초/최종 인덱스, 페이지 당 게시글 숫자 등

검색 및 페이징 처리에 요구되는 인자들을 담은 객체.

최초 selectSampleList()에 요청이 들어올 때는 기본적인 정보(pageIndex = 1 등)만 가지고 들어옴.

propertiesService는 무엇인가?

아직까지 정확히 모르겠음. pageUnit과 pageSize를 받아서 searchVO 객체에 담는것으로 봐선

사용자 설정에 저장된 수치를 불러와서 실제 결과를 불러오는 데에 반영하는 것이 아닌가 함.

PaginationInfo 객체를 생성, searchVO 객체에 페이징 관련 정보를 담은 후 Model에 추가.

egovSampleList.jsp 뷰페이지의 <ui:pagination> 태그에서 객체를 받아 페이징 구현하는듯.

또한, PaginationInfo 클래스는 getFirst/LastPageNo(), getFirstRecordIndex() 등

페이징에 요구되는 추가정보를 추출하는 메서드를 내장하고 있음.

※ searchVO 객체와 paginationInfo 객체가 서로 정보를 주고받으며 데이터 출력에 대한 정보를 완성한 후,

    searchVO 객체를 DAO 객체에 넘겨줌으로써 원하는 데이터를 추출하는데에 활용함.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

알고보니 VO객체 또한 기본 오브젝트였다; VO, DAO, DTO 객체와 관련된 정보 (재혁님 블로그)

searchVO 객체를 EgovSampleService 객체에 넘겨 화면에 출력할 데이터(List<Sample>)을 리턴받음.

정확히 모르겠음. EgovSampleService 인터페이스 객체로 생성했는데 EgovSampleServiceImpl 객체로 들어간다.

아무래도 @Resource 어노테이션과 관계가 있는 것 같은데, '의존하는 빈 객체를 전달' 한다고 한다. 나중에 따로 참고할 것.

 

4. egovframework.rte.sample.service.impl.EgovSampleServiceImpl.java - selectSampleList(SampleDefaultVO searchVO)

요청으로부터 데이터 추출에 필요한 조건이 담긴 searchVO 객체를 넘겨받아 SampleDAO 객체의 selectSampleList()에 넘겨준다.

 

5. egovframework.rte.sample.service.impl.SampleDAO.java - selectSampleList(SampleDefaultVO searchVO)

상동. 특이한건  SampleDAO클래스 내에서 queryForList 등의 메서드를 호출하는게 아닌, DAO클래스마저도 EgovAbstractDAO클래스를 

상속받아 출력할 글 목록을 가져오는 작업을 단순하게 list()라는 메서드로 수행한다는 것. 물론 SQL Query 아이디와 searchVO는 전달함.

이 위론 한참 복잡하다. SqlMapClientDaoSupport상속, DaoSupport상속 등.. 더 자세히는 나중에 또 살펴봐야겠다.

 

6. 다시 EgovSampleController로 돌아와서.. (작업종료 : 뷰페이지로 리턴)

넘겨받은 글목록 List를 변수명 'resultList'로 모델에 더해주고, 글목록 꺼낼때와 같은 방법으로 총 글숫자를 리턴받아

paginationInfo 객체에 저장한 후, 변수명 'paginationInfo'로 모델에 더해준 뒤 '/sample/egovSampleList'로 리턴된다.

 

7. src/main/webapp/WEB-INF/jsp/egovframework/rte/sample/egovSampleList.jsp

Sample 출력을 위한 뷰페이지. 전체적인 css 속성은 외부파일을 참고하며, 대부분 inline과 embedded 스타일로 적혀있음.

페이지 이동, 게시글 등록 등 뷰페이지 내의 이벤트를 실행시키기 위한 javascript 코드는 embedded 스타일로 구현되어있음.

페이지 전체가 listForm이라는 폼으로 싸여있으며, 이벤트가 발생할 경우 필요한 정보를 가지고 각각의 매핑으로 요청을 보내게 구현되어있음.

예)  글 등록 : 아무 정보 없이 /sample/addSampleView.do로 요청 보냄.

글 수정 : Sample의 ID 정보값을 가지고 /sample/updateSampleView.do로 요청 보냄.

페이지 이동 : 해당 페이지 번호를 가지고 /sample/egovSampleList.do로 요청 보냄.

 

 

 

기본적인 흐름은 얼추 정리한 것 같다. 세부적으로 파고들려면 아직 파악해야할 것이 산더미 같겠지만;

 

Sample 데이터베이스가 아닌 내 ERD에 맞춰 생성한 내 데이터베이스와 ibatis SQL 쿼리문에서의 매핑만 해결한다면

비슷하게 본 떠 내 임의의 컴포넌트 셋팅이 가능할 것이라고 본다. 물론 복붙으로 끝나는게 아니라 이렇게 기록하며 이해하는 것이 중요하겠지만.

 



출처: http://kitchu.tistory.com/4 [Dream Archive]

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
66 스프링(Spring) 개발 - (6) 프로젝트 생성 및 개발 시작 file 졸리운_곰 2018.01.17 61
65 스프링(Spring) 개발 - (5) 스프링 기본 프로젝트 분석 file 졸리운_곰 2018.01.17 75
64 스프링(Spring) 개발 - (4) 스프링 프로젝트 생성하기 file 졸리운_곰 2018.01.17 70
63 스프링(Spring) 개발 - (3) 개발환경 구성하기 - 이클립스 플러그인 설치(3/3) file 졸리운_곰 2018.01.17 95
62 스프링(Spring) 개발 - (2) 개발환경 구성하기 [Eclipse+Maven+SVN] (2/3) file 졸리운_곰 2018.01.17 49
61 스프링(Spring) 개발 - (1) 개발환경 구성하기 [Eclipse+Maven+SVN] (1/3) file 졸리운_곰 2018.01.17 69
60 Spring에서 파라미터 전송 file 졸리운_곰 2018.01.17 101
59 View 데이터의 Controller 전달 방법 졸리운_곰 2018.01.17 52
58 전자정부프레임워크(Spring) 값 주고 받는 3가지 방법 졸리운_곰 2018.01.17 59
57 iBatis 와 MyBatis 차이점 iBatis -> MyBatis 졸리운_곰 2018.01.16 288
56 전자정부 프레임워크 구조 샘플 프로젝트 구조(Service 및 Dao)(4) file 졸리운_곰 2018.01.12 124
55 전자정부 프레임워크 구조 샘플 프로젝트 구조(Controller)(3) file 졸리운_곰 2018.01.12 275
54  전자정부 프레임워크(eGovframe) 동적 웹프로젝트 시작하기(2) file 졸리운_곰 2018.01.12 73
53 전자정부 프레임워크(egov framework) 설치하기(1) file 졸리운_곰 2018.01.12 165
52 01. 전자정부 표준 프레임워크는 무엇? file 졸리운_곰 2018.01.12 125
51 전자정부 표준프레임워크 eGov : 실행환경 템플릿 및 예제 테이블정의서 file 졸리운_곰 2018.01.11 260
50 전자정부표준 프레임워크 eGov 공통 콤퍼넌트 설명 (산출물) file 졸리운_곰 2018.01.11 225
49 전자정부프레임워크 eGov : 로그인 분석 졸리운_곰 2018.01.11 261
» 전자정부표준프레임워크 eGov : Sample예제 기본적인 흐름 분석하기. 졸리운_곰 2018.01.11 182
47 전자정부표준 프레임워크 eGov 테이블 설명서 : 공통컴포넌트 3.5.0 ERD 파일 file 졸리운_곰 2018.01.11 258
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED