전자정부 프레임워크는 기본으로 회원전용 서비스이다.

로그인을 해야만 사용할 수 있는데 blog처럼 누구나 와서 읽을 수 있는 서비스를 하려고 하면 좀 복잡하다.


간단하게 *.do 형태로 호출되는 서비스와

*.bog 로 호출되는 서비스를 나누어서 *.blog에서는 로그인 체크를 안하면 된다.


추가방법.

web.xml 에 추가 : 기존에 action 이라는 servlet이 있으므로 그 밑에 추가

    <servlet>
        <servlet-name>blog</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/config/blog/springmvc/blog*.xml</param-value>
        </init-param>
        /
    </servlet>
    <servlet-mapping>
        <servlet-name>blog</servlet-name>
        <url-pattern>*.blog</url-pattern>
    </servlet-mapping>  


blog_servlet.xml 추가 : web.xml 에 정의된 경로에 추가


이것은 egov-com-servlet.xml 을 copy 한 것이고

기본 package 경로를 수정한다.

    <context:component-scan base-package="사용할package명.blog">
        <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> 

Java Source로 Controller, Service, Repository 등을 생성한다.

(일단은 Contoller만 만들어서 되는지 확인하자)

@Controller
public class BlogController {


    private ApplicationContext applicationContext;

    private static final Logger LOGGER = LoggerFactory.getLogger(BlogController.class);

    private Map<Integer, IncludedCompInfoVO> map;

    public void afterPropertiesSet() throws Exception {}

    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext = applicationContext;
       
        LOGGER.info("BlogController setApplicationContext method has called!");
    }

    @RequestMapping("/index.blog")
    public String index(ModelMap model) {
        return "blog/BlogMain";
    }
 


index.blog 가 호출될 때 보여줄 jsp Page를 만든다

WEB-INF/jsp/blog/BlogMain.jsp

WEB-INF 밑에 index.jsp 에서

<jsp:forward page="/index.do"/> 를 호출하게 되어 있으므로

<jsp:forward page="/index.blog"/>로 바꾸어 준다.


728x90

전자정부 프레임워크로 프로젝트를 만들 때

1. 빈 프로젝트 에서 공통 컴포넌트들을 추가한다.

2. Template 프로젝트를 생성한 후 필요한 공통컴포넌트를 추가한다.

3. AllinOne 프로젝트를 생성한다.


2번의 경우에서 필요한 컴포넌트 추가하면 에러가 많이난다.

이유는 컴포넌트에 동일한 서비스가 이미 있는 경우가 있기 떄문이다.

RestdeManageService를 예로 들면

egovframework.com.sym.cal.service.impl/EgovCalRestdeManageServiceImpl

egovframework.let.sym.cal.service.impl/EgovCalRestdeManageServiceImpl

두개 파일이 동일한 @RestdeManageService 로 정의되어 있다.


그러면 어떤 것을 사용해야할 지 고민이 된다.

원본에는 let안에 있는데... com으로 바꿔야하나

아무튼 이런것들이 꽤 많다.

전자정부프레임워크 담당자는 빈 Web 프로젝트부터 시작하라고 한다.

http://www.egovframe.go.kr/uss/olh/qna/QnaInqireCoUpdt.do?qaId=QA_00000000000013099&passwordConfirmAt=


그래도 템플릿에서 시작하겠다고 하면

중복되는 애들의 @Controller, @Service, @Repository 를 하나를 없애고

참조하는 import 경로도 수정한다.


let가 기본인데 com으로 바꿀 때 import 를 수정하지 않으면 casting에러가 난다.

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 :