예제 프로젝트에 sitemesh 를 입혔는데 적용이 안되네요..
- 작성자 :
- 김*희
- 작성일 :
- 2014-09-25 10:24:21
- 조회수 :
- 3,171
- 구분 :
- 기타
- 진행상태 :
- 완료
Q
환경은 egov2.7 / java 1.6 / tomcat 7 입니다.
동작에 필요한 jar 파일을 pom.xml 에서 추가하였습니다.
<!-- sitemesh -->
<dependency>
<groupId>opensymphony</groupId>
<artifactId>sitemesh</artifactId>
<version>2.4.1</version>
</dependency>
<!-- sitemesh 구현시 사용 -->
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
또한 web.xml에서 관련 세팅도 하였습니다.
<!-- sitemesh -->
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
관련 decorators.xml / sitemesh.xml 도 작성하였습니다.
decorators.xml
<?xml version="1.0" encoding="utf-8"?>
<decorators>
<excludes>
<pattern>/ajax/*.do</pattern>
</excludes>
<decorator name="site" page="/WEB-INF/jsp/decorators/decorator.jsp">
<pattern>/main.do</pattern>
<pattern>/web/*.do</pattern>
</decorator>
</decorators>
sitemesh.xml
<sitemesh>
<property name="decorators-file" value="/WEB-INF/decorators.xml" />
<excludes file="${decorators-file}" />
<page-parsers>
<parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
<parser content-type="text/html;charset=utf-8" class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
</page-parsers>
<decorator-mappers>
<mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
<param name="config" value="${decorators-file}" />
</mapper>
</decorator-mappers>
</sitemesh>
그런데 main.do 로 접속했을때, decorator 페이지가 안 입혀지네요.. ㅠㅠ
어떻게 해야할지..
혹시 몰라서 프로젝트를 통으로 올립니다. . .
동작에 필요한 jar 파일을 pom.xml 에서 추가하였습니다.
<!-- sitemesh -->
<dependency>
<groupId>opensymphony</groupId>
<artifactId>sitemesh</artifactId>
<version>2.4.1</version>
</dependency>
<!-- sitemesh 구현시 사용 -->
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
또한 web.xml에서 관련 세팅도 하였습니다.
<!-- sitemesh -->
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
관련 decorators.xml / sitemesh.xml 도 작성하였습니다.
decorators.xml
<?xml version="1.0" encoding="utf-8"?>
<decorators>
<excludes>
<pattern>/ajax/*.do</pattern>
</excludes>
<decorator name="site" page="/WEB-INF/jsp/decorators/decorator.jsp">
<pattern>/main.do</pattern>
<pattern>/web/*.do</pattern>
</decorator>
</decorators>
sitemesh.xml
<sitemesh>
<property name="decorators-file" value="/WEB-INF/decorators.xml" />
<excludes file="${decorators-file}" />
<page-parsers>
<parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
<parser content-type="text/html;charset=utf-8" class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
</page-parsers>
<decorator-mappers>
<mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
<param name="config" value="${decorators-file}" />
</mapper>
</decorator-mappers>
</sitemesh>
그런데 main.do 로 접속했을때, decorator 페이지가 안 입혀지네요.. ㅠㅠ
어떻게 해야할지..
혹시 몰라서 프로젝트를 통으로 올립니다. . .
A
안녕하세요. 김윤희님.
아마도 Controller에서 jsp 호출 시에 forward되기 때문에 filter가 호출되지 않는 문제 같습ㄴ디ㅏ.
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
와 같이 변경해 보시면 되실 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.
아마도 Controller에서 jsp 호출 시에 forward되기 때문에 filter가 호출되지 않는 문제 같습ㄴ디ㅏ.
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
와 같이 변경해 보시면 되실 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.