Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

우리마의 웹 개발

[Spring]페이징 처리 EgovFramework Paginationinfo 사용하기( 설정) 본문

WEB/Spring

[Spring]페이징 처리 EgovFramework Paginationinfo 사용하기( 설정)

우리마 2020. 7. 21. 13:40

안녕하세요. Spring 환경에서 전자정부 프레임워크에서 제공하는 PaginationInfo를 사용해서 게시판 페이징 처리를 해볼 거예요. 

 

먼저 전자정부 프레임워크의 라이브러리(패키지)를 추가해 줘야 됩니다. EgovFramework는 한국 거라서 그런지 https://mvnrepository.com/ Maven Repository 저장소에 검색해도 뜨지 않아요..

그래서 전자정부프레임워크 라이브러리를 사용하는 몇 가지 방법을 소개할게요

 

개발 환경
Spring Framework 5.2.3
Egov Framework 3.8
Tomcat 8.0
DB MySql8 , MyBatis3.5

 

1. 전자정부 프레임워크 홈페이지에서 개발 환경 다운로드

https://www.egovframe.go.kr/EgovDevEnvRelease_300.jsp?menu=3&submenu=2&leftsub=2

 

개발환경 3.0.0 다운로드 - eGovFrame Portal 온라인 지원 포털

 

www.egovframe.go.kr

위 사이트에 접속하셔서 원하시는 버전을 다운로드하시면 이클립스에 전자정부 패키지가 모두 들어가 있습니다.

지금은 페이징 기능을 얘기하고 있지만 페이징 외에도 유용한 기능이 많으니 참고하시면 좋을 거 같습니다.

 

2. 메이븐 추가
1
2
3
4
5
6
7
<dependency>
  <groupId>egovframework.rte</groupId>
  <artifactId>egovframework.rte.ptl.mvc</artifactId>
  <version>3.8.0</version>
 </dependency>
 
 
 
cs

구글에 egovframework maven과 같은 키워드로 검색하시게 되면 쉽게 찾아볼 수 있어요. 그런데 일반 이클립스에서 위와 같이 메이븐을 추가하게 되면 기존의 Spring MVC와 충돌(?), 버전 문제 등 오류가 나는 경우가 종종 있었어요. 그래서 저는 저렇게 메이븐을 설치한 후 그 안의 페이징 관련 패키지만 직접 가져와서 프로젝트에 추가하는 방식도 있습니다.

본인의 Maven Repository 디렉터리에 들어가서

(본인 maven repository path)\egovframework\rte\egovframework.rte.ptl.mvc\3.8.0

으로 들어가면 egovframework.rte.ptl.mvc-3.8.0-sources.jar 파일이 있습니다. 이 친구를 압축 해제하면

 

 

ui에 있는 java파일과 pagination 폴더에 있는 java파일을 모두 가져옵니다.

그리고 ImagePaginationRenderer.java라는 파일이 필요한데 이 친구 어디 있는지 모르겠습니다.. (어디 있는지 아시는 분 댓글..) 일단 복붙 해서 사용하세요..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import javax.servlet.ServletContext;
 
import org.springframework.web.context.ServletContextAware;
/**
 * ImagePaginationRenderer.java 클래스
 * 
 * @author 서준식
 * @since 2011. 9. 16.
 * @version 1.0
 * @see
 *
 * <pre>
 * << 개정이력(Modification Information) >>
 *   
 *   수정일      수정자           수정내용
 *  -------    -------------    ----------------------
 *   2011. 9. 16.   서준식       이미지 경로에 ContextPath추가
 * </pre>
 */
public class ImagePaginationRenderer extends AbstractPaginationRenderer implements ServletContextAware{
 
    private ServletContext servletContext;
    
    public ImagePaginationRenderer() {
    
    }
    
    public void initVariables(){
        firstPageLabel    = " <a href=\"?pageIndex={1}\" class=\"paginationInfoText\" onclick=\"{0}({1});return false; \">처음</a> ";
        previousPageLabel = " <a href=\"?pageIndex={1}\" class=\"paginationInfoText\"  onclick=\"{0}({1});return false; \">이전</a> ";
        currentPageLabel  = " <strong style=\"color: red; font-size: 18px;\">{0}</strong> ";
        otherPageLabel    = " <a href=\"?pageIndex={1}\" style=\"color: black; font-size: 18px;\" onclick=\"{0}({1});return false; \">{2}</a> ";
        nextPageLabel     = " <a href=\"?pageIndex={1}\" class=\"paginationInfoText\"  onclick=\"{0}({1});return false; \">다음</a> ";
        lastPageLabel     = " <a href=\"?pageIndex={1}\" class=\"paginationInfoText\" onclick=\"{0}({1});return false; \">끝</a> ";
        
        
        
        
        
//          firstPageLabel    = "<li>&#160;</li><li><a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() +  "/images/egovframework/com/cmm/mod/icon/icon_prevend.gif\" alt=\"처음\"   border=\"0\"/></a></li>";
//        previousPageLabel = "<li><a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() +  "/images/egovframework/com/cmm/mod/icon/icon_prev.gif\"    alt=\"이전\"   border=\"0\"/></a></li>";
//        currentPageLabel  = "<li><strong>{0}</strong></li>";
//        otherPageLabel    = "<li><a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \">{2}</a></li>";
//        nextPageLabel     = "<li>&#160;<a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() +  "/images/egovframework/com/cmm/mod/icon/icon_next.gif\"    alt=\"다음\"   border=\"0\"/></a></li>";
//        lastPageLabel     = "<li><a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() +  "/images/egovframework/com/cmm/mod/icon/icon_nextend.gif\" alt=\"마지막\" border=\"0\"/></a></li>";
    }
 
    
 
    public void setServletContext(ServletContext servletContext) {
        this.servletContext = servletContext;
        initVariables();
    }
 
}
 
 
cs

이렇게 페이징에 필요한 java 파일들을 본인의 프로젝트에 추가해 줍니다.

 

이로써 전자정부 프레임워크의 PaginationInfo를 이용할 수 있는 파일들을 모았습니다.

다음으로 root-context.xml에 bean등록을 해주도록 합시다.

/src/main/WEB-INF/spring/root-context.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- For Pagination Tag -->     
  <bean id="imageRenderer" class="com.myProject.training.egovframework.paginationinfo.ImagePaginationRenderer"/>
        
  <bean id="textRenderer" class="com.myProject.training.egovframework.paginationinfo.DefaultPaginationRenderer"/>
        
  <bean id="paginationManager" class="com.myProject.training.egovframework.paginationinfo.DefaultPaginationManager">
      <property name="rendererType">
          <map>
              <entry key="image" value-ref="imageRenderer"/>
              <entry key="text" value-ref="textRenderer"/>
          </map>
      </property>
  </bean>
 
cs

각 bean의 class는 본인의 해당 java파일의 경로를 적어주시면 됩니다.

 

여기까지 설정을 했다면 전자정부프레임워크의 페이징 기능을 사용할 인프라가 갖추어졌습니다.

 

다음 글에서 Jsp, Controller 등 작성하는 방법을 소개하겠습니다.

Comments