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로 보인다.