이전글

전자정부 표준프레임워크 (eGovFrame) mvc 패턴 게시판 만들기 - 페이지 이동

호빵찡 2017. 2. 13. 10:53

전자정부 프레임워크 예제를 실행하면 다음과 같은 웹페이지가 나타난다.

상단 메뉴탭에 새로운 게시판 탭(게시판2)을 추가하고 해당 게시판 페이지에서 일반적인 게시판 기능을 하도록 했다.




게시판 기능 구현에 앞서 게시판 탭을 클릭시 게시판 페이지로 넘어가게 하기 위해 페이지 이동을 분석해 보았다.


일단 위의 캡쳐에서 볼 수 있듯이 처음 서버를 구동시킨 후 localhost로 접속한 메인 화면은 http://localhost:8080/cmm/main/MainPage.do 라는 url에서 뜬다.


서버를 구동시키고 localhost로 접속시 web.xml의 <welcome-file-list> 태그 내의 리소스가 호출돼 index.jsp가 보이게 된다.


※web.xml : WEB-INF 폴더 아래의 환경설정 파일



index.jsp에서는 본문 내용이 없고 바로 "/cmm/main/mainPge.do"로 링크가 걸려있어 바로 해당 링크로 이동되는데 이 이동은 [EgovMainController.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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//EgovMainController.java
 
@RequestMapping(value = "/cmm/main/mainPage.do")
    public String getMgtMainPage(HttpServletRequest request, ModelMap model)
      throws Exception{
 
        // 공지사항 메인 컨텐츠 조회 시작 ---------------------------------
        BoardVO boardVO = new BoardVO();
        boardVO.setPageUnit(5);
        boardVO.setPageSize(10);
        boardVO.setBbsId("BBSMSTR_AAAAAAAAAAAA");
 
        PaginationInfo paginationInfo = new PaginationInfo();
 
        paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
        paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
        paginationInfo.setPageSize(boardVO.getPageSize());
 
        boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
        boardVO.setLastIndex(paginationInfo.getLastRecordIndex());
        boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
 
        Map&lt;String, Object&gt; map = bbsMngService.selectBoardArticles(boardVO, "BBSA02");
        model.addAttribute("notiList", map.get("resultList"));
        // 공지사항 메인컨텐츠 조회 끝 -----------------------------------
 
        // 자유게시판 메인 컨텐츠 조회 시작 ---------------------------------
        boardVO.setPageUnit(9);
        boardVO.setPageSize(10);
        boardVO.setBbsId("BBSMSTR_BBBBBBBBBBBB");
 
        paginationInfo.setCurrentPageNo(boardVO.getPageIndex());
        paginationInfo.setRecordCountPerPage(boardVO.getPageUnit());
        paginationInfo.setPageSize(boardVO.getPageSize());
 
        boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
        boardVO.setLastIndex(paginationInfo.getLastRecordIndex());
        boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
 
        model.addAttribute("bbsList", bbsMngService.selectBoardArticles(boardVO, "BBSA02").get("resultList"));
        // 자유게시판 메인컨텐츠 조회 끝 -----------------------------------
 
        // FAQ 메인 컨텐츠 조회 시작 ---------------------------------
        /** EgovPropertyService.SiteList */
        FaqManageDefaultVO searchVO = new FaqManageDefaultVO();
        searchVO.setPageUnit(3);
        searchVO.setPageSize(10);
 
        /** pageing */
        paginationInfo.setCurrentPageNo(searchVO.getPageIndex());
        paginationInfo.setRecordCountPerPage(searchVO.getPageUnit());
        paginationInfo.setPageSize(searchVO.getPageSize());
 
        searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
        searchVO.setLastIndex(paginationInfo.getLastRecordIndex());
        searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
 
        model.addAttribute("faqList", faqManageService.selectFaqList(searchVO));
        // FAQ 메인 컨텐츠 조회 끝 -----------------------------------
 
        // 설문참여 메인 컨텐츠 조회 시작 -----------------------------------
        ComDefaultVO qVO = new ComDefaultVO();
        qVO.setPageUnit(1);
        qVO.setPageSize(10);
 
        /** pageing */
        paginationInfo.setCurrentPageNo(qVO.getPageIndex());
        paginationInfo.setRecordCountPerPage(qVO.getPageUnit());
        paginationInfo.setPageSize(qVO.getPageSize());
 
        qVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
        qVO.setLastIndex(paginationInfo.getLastRecordIndex());
        qVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
 
        model.addAttribute("qriList", egovQustnrRespondInfoService.selectQustnrRespondInfoManageList(qVO));
     // 설문참여 메인 컨텐츠 조회 끝 -----------------------------------
 
        return "main/EgovMainView";
    }
cs


중간에 모델 설정들이 있지만 그 부분은 일단 뛰어넘고 페이지 이동 부분만 보면 컨트롤러에서 "/cmm/main/mainPge.do" 요청이 들어올때 "main/EgovMainView"가 리턴된다.


리턴값은 그냥 String이지만