index 화면이 열리기까지의 과정이다.


1. globals.properties에 main page 경로 정의

(/egov_portal_shop/src/main/resources/egovframework/egovProps/globals.properties)

Globals.MainPage = /cmm/main/mainPage.do


2. controller 에서 정의

requestMapping의 value 에 Globals.MainPage 값을 넣어 준다.

각종 조회한 뒤 addAttribute로 넣은뒤

jsp로 넘긴다.("main/EgovMainView")

    @RequestMapping(value = "/cmm/main/mainPage.do")
    public String getMgtMainPage(HttpServletRequest request, ModelMap model)
      throws Exception{

        // 공지사항 메인 컨텐츠 조회 시작 ---------------------------------
        //model.addAttribute("notiList", map.get("resultList"));
        // 공지사항 메인컨텐츠 조회 끝 -----------------------------------

        // 자유게시판 메인 컨텐츠 조회 시작 ---------------------------------
        model.addAttribute("bbsList", bbsMngService.selectBoardArticles(boardVO, "BBSA02").get("resultList"));
        // 자유게시판 메인컨텐츠 조회 끝 -----------------------------------

        // FAQ 메인 컨텐츠 조회 시작 ---------------------------------
        //model.addAttribute("faqList", faqManageService.selectFaqList(searchVO));
        // FAQ 메인 컨텐츠 조회 끝 -----------------------------------

        // 설문참여 메인 컨텐츠 조회 시작 -----------------------------------
        //model.addAttribute("qriList", egovQustnrRespondInfoService.selectQustnrRespondInfoManageList(qVO));
     // 설문참여 메인 컨텐츠 조회 끝 -----------------------------------


        return "main/EgovMainView";
    }


3. jsp page

jsp Page에 대한 처리 정보는 servlet.xml 에서 한다

(/egov_portal_shop/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml)

    <!-- 화면처리용 JSP 파일명의  prefix, suffix 처리에 대한 mvc 설정  -->
    <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1"
    p:viewClass="org.springframework.web.servlet.view.JstlView"
    p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/> 

기본으로 /WEB-INF/jsp/ 에 .jsp 파일을 설정해놨다


return "main/EgovMainView" 를 하게 되면

/WEB-INF/jsp/main/EgovMainView.jsp 파일을 찾는다.

(/egov_portal_shop/src/main/webapp/WEB-INF/jsp/main/EgovMainView.jsp)


하지만 이렇게 하면

호출되는 주소창에 다음과 같이 나온다.

http://localhost:8080/egov_portal/cmm/main/mainPage.do


깔끔하게 루트로 보내려면

다음과 같은 작업을 한다.

나만의 서비스이므로 package를 새로만든다. robsoft

하지만 spring에서 component-scan에 의해 정해진 package만 사용되므로

base-package인 egovframework를 붙인다.

(/egov_portal_shop/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml)

    <!-- 패키지 내 Controller, Service, Repository 클래스의 auto detect를 위한 mvc 설정 -->
    <context:component-scan base-package="egovframework">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
    </context:component-scan>


그래서 egovframework.rob.shop (shop은 내가 만들 모듈 명)으로 하고 controller class를 만든다.

egovframework.rob.shop.RobMainController


여기에 mainPage로 보낼 코드를 작성한다.

소스는 원래 있던 소스를 그대로 가져왔다.

    /**
     * 메인 페이지 조회
     * @return 메인페이지 정보 Map [key : 항목명]
     *
     * @param request
     * @param model
     * @exception Exception Exception
     */
    @RequestMapping(value = "/mainPage.do")
    public String getMgtMainPage(HttpServletRequest request, ModelMap model)
      throws Exception{

        // 공지사항 메인 컨텐츠 조회 시작 ---------------------------------
        model.addAttribute("notiList", map.get("resultList"));


        // 공지사항 메인컨텐츠 조회 끝 -----------------------------------

        // 자유게시판 메인 컨텐츠 조회 시작 ---------------------------------
        model.addAttribute("bbsList", bbsMngService.selectBoardArticles(boardVO, "BBSA02").get("resultList"));
        // 자유게시판 메인컨텐츠 조회 끝 -----------------------------------

        // FAQ 메인 컨텐츠 조회 시작 ---------------------------------
        model.addAttribute("faqList", faqManageService.selectFaqList(searchVO));
        // FAQ 메인 컨텐츠 조회 끝 -----------------------------------

        // 설문참여 메인 컨텐츠 조회 시작 -----------------------------------
        model.addAttribute("qriList", egovQustnrRespondInfoService.selectQustnrRespondInfoManageList(qVO));
     // 설문참여 메인 컨텐츠 조회 끝 -----------------------------------


        return "main/RobMainView";
    }
 


그 다음 jsp Page

prefix로 /WEB-INF/jsp 가 붙으므로 경로는 다음과 같다.

파일명에도 뒤에 .jsp가 붙는다.

/egov_portal/src/main/webapp/WEB-INF/jsp/main/RobMainView.jsp 

마찬가지로 내용은 원본인 EgovMainView.jsp와 동일하게 했다.


그리고 호출할 때 index.jap파일도 수정해야 한다.

/egov_portal_shop/src/main/webapp/index.jsp

기본으로 index.jsp를 찾게 되고 거기에서 mainPage.do로 forwarding을 한다.

/cmm/main/mainPage.do를 그냥 mainPage.do 로 바꾼다.

원본 : <script type="text/javaScript">document.location.href="<c:url value='/cmm/main/mainPage.do'/>"</script>

수정본 : <script type="text/javaScript">document.location.href="<c:url value='/mainPage.do'/>"</script>


이러면 바로

http://localhost:8080/egov_portal/ 을 하면 바로 mainPage.do로 보인다.

댓글을 달아주세요:: 네티켓은 기본, 스팸은 사절

BLOG main image
"그게 뭐 어쨌다는 거냐?" 늘 누가 나에게 나에대한 말을할 때면 이말을 기억해라. by nobang

카테고리

nobang이야기 (1675)
Life With Gopro (7)
Life With Mini (72)
Diary (929)
너 그거 아니(do you know) (129)
난 그래 (127)
속지말자 (9)
Project (34)
Poem (14)
Song (0)
Study (156)
Photo (113)
낙서장 (45)
일정 (0)
C.A.P.i (2)
PodCast (0)
nobang (27)
고한친구들 (4)
recieve (0)
History (0)
android_app (2)

최근에 받은 트랙백

Total : 533,773
Today : 108 Yesterday : 237