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

728x90

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.)


[net.sf.log4jdbc.DriverSpy] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.


여러 원인이 있다.

1. tomcat의 실제 lib 결로에 mysql jar 파일을 넣으라고도 하고

2. 여러 프로젝트로 인해 꼬였으니 clean 후 다시 배포하라고도 하는데


나의 경우에는 2번인 듯 하다.

똑같은 Project 소스를 이름만 다르게 했는데..

하나를 close project 한뒤에

clean 하고 다시 배포했더니 된다. ㅡ.ㅡ


728x90

수영 3주를 마치고

2018. 10. 28. 10:31

음~ 수영을 다시 다니니 좋은점은

재밌다는 것이다.

(재미있는데 자꾸 남은 시간은 본다 ㅎㅎ)


수업이 시작하면

기본 자유형 4바퀴정도 하고

그날 그날 교정할 자세로 몇바퀴 돌고 * 2

30분쯤 되면 반대쪽으로 걸어갔다오면서 좀 쉬고

남은 20분 빡세게 돌다 끝난다


어쩌다 킥판을 드는 날은 맨 뒤로 가야한다.

하체부실 어쩔 ㅜ.ㅜ


자유형이나 평영을 하면 앞쪽으로

배영은 포지션이 애매~~하다.


맨 앞에서 하게 되면 따라오는게 부담이 되어 오버페이스를 하는 경우가 꽤 있다.

헉헉헉헉.. 머리도 띵하고


아무래도 쫓아가는게 체질인 듯 ㅎ


수업이 끝나고 종료인사 '수고하셨습니다'를 하고 돌아서 자유형으로 또 몇바퀴 돈다.

며칠전에는 플립턴을 간만에 했는데 코에 물이 많이 들어갔는지

제체기에 콧물에... 특별한 감기증상은 없으니 물이 들어가 알러지성 비염증세가 심해진 것 같다.

두르마리 화장지 1개정도 쓴 것 같음.

자리에 수북히 쌓이는 휴지... 민망해서 두어번 갖다 버리고


토요일에 병원가서 코찍 몇 번 뿌리고 나니 흐르는 건 좀 멈췄다.

근데 약을 4일치나 주다니...아침,저녁으로 총 8개. 항생제도 있고..


아무튼 다음주에 끝나고 자유형할때는 플립턴으로 한번 돌아야겠다 ㅋㅋㅋ

(벌써 한달이 지나가네.. 다음달까지만 등록해놨는데 연장을 해야하나)

728x90

맥북 복구하다 ㅎㅎㅎ

2018. 10. 28. 10:09

새벽 몇시까지였는지 기억도 안난다.

넘 피곤했지만...

복구(?)에는 성공했다.


부팅영역 어딘가 문제가 있었던 것 같다.


option + R 을 누르면 멀티부팅 시 선택할 수 있는데

여기에서 정상적으로 맥OS, 윈도우즈가 나타났다.

혹시나 해서 윈도우로 띄워보니 역시나 잘된다.

그러나 맥은 같은 현상이다...


결국 윤철이에게 빌려 온 외장 DVD플레이어에

스노우 레파드(snow leopard)를 넣고 실행시켜서

어찌어찌 디스크 관리자를 열었는데

검사하보니 문제는 없다고 하네...


결구 OS를 새로 설치하는데

이상하게 잘 인식 안할 때가 있고 속도도 엄청 느렸다.

설치는 완료하고 자야했기에 졸린 눈을 비비고

날아드는 모기에도 불구하고

끝까지 설치완료 후 부팅까지 확인했다.


원래 멀티부팅할 때 프로그램을 써서 선택했었는데

시작OS를 윈도우로 설정할 수 있었다는것을 나중에 깨달음 ㅡㅡ.

(몇 년 동안 매번 선택했는데... 쩝)


이제는 전원버튼 누르고 딴짓해도 윈도우로 들어 감 ㅎㅎㅎ

한고비 넘겼으니 또 얼마나 버텨줄 지 모르겠넹

728x90

2006년에 구매했으니... 12년이면 많이 쓴건가?


갑자기 부팅이 안되고 연한 하늘색화면에서 계속 멈춰있다.

이것저것 복구방법을 써 봤으나 똑같다...

command + s 로 복구까지 해봤는데도...


마지막으로 재설치가 있는데

맥북에 있는 super drive는 이미 동작하지 않아 설치불가

dvd player를 구해서 다시 설치해봐야겠다.


이대로 녀석을 보내기엔... 너무 아쉬운데

728x90

전자정부 프레임워크 All in one 에서

web_allinone.xml 을 수정했는데

갑자기 에러가 난다.

cvc-complex-type.2.3: Element 'web-app' cannot have character [children], because the type's content type is element-only.    web_allinone.xml    /allinone/src/main/webapp/WEB-INF    line 5    XML Problem


저 부분은 건드린 것이 없는데...

<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 


1개의 element만 사용할 수 있다고 하는데

자세히 보면 xsi:schemaLocation에 두 개가 정의되어 있다.

그중에 xmlns:web에 똑같은 내용이 있어서

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd를 제거하니 오류가 없어진다.

<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee"> 



728x90

첫 화면은 index.do 이다.

첫화면을 변경하기 위해서는 index.do 를 adminIndex.do 로 변경한 뒤에

index.do를 만들어 원하는 디자인을 입히면 될 것 같음.


--> 안된다 ㅜ.ㅜ

index.do를 다시 만들었는데... 자꾸 intercepter인가가 가로채서...

원래는 로그인 없이 사용할 수 있는 서비스로 보내려고 한건데.. 쩝.

일단 아래는 참고용으로 놔둠.

-----



EgovComIndexController.java

 @RequestMapping("/index.do")
    public String index(ModelMap model) {
        return "egovframework/com/cmm/EgovUnitMain";
    }

 EgovLoginSesionCheck.jsp

 <%
     // 세션 정보를 가져온다. LoginVO
     egovframework.com.cmm.LoginVO user = (egovframework.com.cmm.LoginVO)egovframework.com.cmm.util.EgovUserDetailsHelper.getAuthenticatedUser();
     String contextPath = request.getContextPath();
     if(user.getUrl() == null || user.getUrl().equals("")) user.setUrl(contextPath+"/index.do");
 %>

 egovDevIndex.jsp

 <jsp:forward page="/index.do"/>

 index.jsp

 <jsp:forward page="/index.do"/>

 

 


여기에서 일단 관리자는 adminIndex.do로 변경하면

1. adminIndex.jsp 생성(index.jsp 복사)

    index.do 를 adminIndex.do 로 변경


2. EgovLoginSesionCheck는 세션이 없으면 기본으로 index.do 로 보내는 것이므로 그대로 둠.


3. EgovComIndexController 에는 adminIndex 추가

   @RequestMapping("/adminIndex.do")
    public String adminIndex(ModelMap model) {
        return "egovframework/com/cmm/EgovUnitMain";
    }


728x90

수영 일주일을 마치며

2018. 10. 14. 10:40

주차로는 2주가 끝났네... 나간건 딱 7일 나갔고


목요일에 수영을 하다가 평영인데 왼쪽다리에 쥐가 났다 ㅡ.ㅡ

다리3번에 1번 호흡하는건데 어디서 그렇게 힘을 줬는지

중간쯤에서 쥐가 나서 겨우 끝까지 도착한 뒤에

물위로 올라가는데 그 고통은 ... 으...

정신이 신체를 지배한다고 엄청난 고통인데도 참아지더군


최고치에서 5%(?)정도 나아지고 뭉친근육을 주먹으로 치고

다리 스트레칭도 하고 조치를 한 3분정도하니 큰 고통은 가고

근육이 뭉쳐 힘주면 아픈상태가 되었다.


물 속으로 다시 들어와서 최대한 다리에 무리를 주지 않는 영법

(거의 팔로만)으로 수업을 마쳤다.


금요일에 오리발인데. 쥐로 뭉친 근육이 아직 풀리지 않았다.

오리발로 배영으로 갔다가 한팔접영으로 20분정도 하고

25미터 접영을 8번. 오리발이고 끊어서 하는거라 그리 힘들지는 않음.


옆레인 연수반이랑 합쳐서 IM(접,배,평,자)를 3번씩 두번했나?

중간에 끼어서 가는데 또 쥐날까봐 걱정도 되고 나 때문에 밀릴까봐

엄청 노~력해서 겨우 마침.


속도가 접영은 비슷, 배영에서 조금벌어지고 평영에서 비슷, 자유형에서 비슷

결국 앞사람과의 거리는 점점 멀어지고 ㅋㅋ

뒷사람과의 거리는 배영에서 밀렸다가 풀리고를 반복함.


다행이도 쥐는 안났다.

IM이어서 그런지 체력소모는 꽤 됨.


앞으로는 좀 일찍 자야겠음.

수영에서 체력소모가 많으면 다음날 너~무 피곤함.

한 두달은 지나야 몸이 적응한다는데


금요일 배운 팁.

자유형 스트로크 할 때, 팔을 당기는게 이두보다 광배근인가 옆구리 뒤쪽 근육을 써야한다고

팔만 당기는게 아니라 몸전체를 앞으로 미는거라고 그래서 쭉 편 팔을 당기면서 물을잡고

실제 미는 동작부터 끝까지가 몸을 미는 동작으로 날개 근육을 최대한 쓰면 훨씬 더 잘나갈거라고 한다.

지금까지는 끝까지 밀 때 3두(팔 바깥쪽 근육)만 생각했는데 날개근육에도 힘이가는지 살펴봐야겠다.


728x90

뉴스관리라는 것이 있음.

근데 공지사항이랑 다른 용도겠지?

게시판이랑은 뭐가 다른건가...



조회

SELECT NEWS_ID, NEWS_SJ, NEWS_CN, NEWS_ORIGIN, NTCE_DE, ATCH_FILE_ID, FRST_REGIST_PNTTM, FRST_REGISTER_ID,
LAST_UPDT_PNTTM LAST_UPDUSR_PNTTM, LAST_UPDUSR_ID FROM COMTNNEWSINFO WHERE 1=1 ORDER BY NEWS_ID
DESC LIMIT 10 OFFSET 0


저장버튼 눌렀을 때

INSERT INTO COMTNNEWSINFO (NEWS_ID , NEWS_SJ , NEWS_CN , NEWS_ORIGIN , NTCE_DE , ATCH_FILE_ID
, FRST_REGIST_PNTTM , FRST_REGISTER_ID , LAST_UPDT_PNTTM , LAST_UPDUSR_ID) VALUES ( 'NEWS_000000000000001'
, '첫번째 뉴스' , '첫번째 뉴스입니다.' , 'http://nobang.tistory.com' , '20181012' , NULL , sysdate() , 'USRCNFRM_00000000000'
, sysdate() , 'USRCNFRM_00000000000' )


내용보기

SELECT NEWS_ID, NEWS_SJ, NEWS_CN, NEWS_ORIGIN, NTCE_DE, ATCH_FILE_ID , DATE_FORMAT(FRST_REGIST_PNTTM,'%Y-%m-%d')
FRST_REGIST_PNTTM , FRST_REGISTER_ID, DATE_FORMAT(LAST_UPDT_PNTTM,'%Y-%m-%d') LAST_UPDT_PNTTM
, LAST_UPDUSR_ID FROM COMTNNEWSINFO WHERE NEWS_ID='NEWS_000000000000001'

728x90

수영 일주일차

2018. 10. 10. 10:34
4일에 뭐 했었는지 이미 까먹은 상태라...
5일째 오리발을 끼는 날.

오리발하는 날은 비교적 발차기가 수월하기 때문에 막 돌리는 날로 보면 된다.
4바퀴씩 두번에 8바퀴씩 두번 등

그러던 중 겨드랑이가 쓰라렸다.
자유형을 많이 하는날 유독 겨드랑이가 쓸려 아팠는데 이런날은 빨갛게 부어오른다.
심한 날은 부위가 좀 크기도 하고 어떤날은 엄지 손톱정도인데
드디어 원인을 알아냈다.

팔을 쭉 편 상태에서 가슴까지 물을 잡으면서 당기고 허벅지까지 미는 동작인데
가슴까지 당길 때 중심을 기준으로 쭉 내려와야 하는데
X를 그리듯이 반대쪽 어깨선까지 팔이 간 것 같다
이러다 보니 겨드랑이가 맞닿는 부위가 많아 쓸리는 것을 드디어 발견.
거의 붙어서 돌아가다 보니 겨털도 맞물려 돌아 꼬이기도 했던 것이었다.

물 밖에서 팔동작만 봐주다보니 그점은 몰랐던듯하다
앞으로는 가운데를 넘어가지 않게 해야겠다 ㅎ
목요일에 테스트 해 봐야지
(화요일은 한글날, 수요일은 강습없는 날)
 
728x90
BLOG main image
"그게 뭐 어쨌다는 거냐?" 늘 누가 나에게 나에대한 말을할 때면 이말을 기억해라. by nobang

카테고리

nobang이야기 (1933)
Life With Gopro (7)
Life With Mini (79)
Diary (971)
너 그거 아니(do you know) (162)
난 그래 (159)
Study (290)
속지말자 (10)
Project (34)
Poem (15)
Song (0)
Photo (113)
낙서장 (45)
일정 (0)
C.A.P.i (2)
PodCast (0)
nobang (27)
고한친구들 (4)
recieve (0)
History (0)
android_app (2)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :