Java/Etc

Site-mesh에서 excludes 정의가 적용 되지 않을 경우

체리필터 2010. 5. 14. 10:37
728x90
반응형

Site-mesh의 decorators.xml 파일에서 excludes를 정의해서 사용하려 했지만
여전희 decorator 파일이 적용 되는 상황이 발생했다.
여기 저기 구글링 해 봤지만 내 검색 능력의 한계인가 잘 찾질 못했다.
결국 사내 아는 분에게 문의해서 원인을 알게 되었다.


sitemesh.xml

<sitemesh>
	<property name="decorators" value="/WEB-INF/decorators.xml" />
	<excludes file="${decorators}" />
	
	<page-parsers>
		<parser default="true" class="com.opensymphony.module.sitemesh.parser.DefaultPageParser"/>
		<parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.FastPageParser"/>
	</page-parsers>
	
	<decorator-mappers>

	<mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
			<param name="config" value="/WEB-INF/decorators.xml"/>
		</mapper>
		
	</decorator-mappers>
	
</sitemesh>

decorators.xml

<decorators defaultdir="/decorators">
	<excludes>
		<pattern>/uninstall/*</pattern>
	</excludes>
	
	<decorator name="download" page="download.jsp">
		<pattern>/download/*</pattern>
	</decorator>
	
	<decorator name="intro" page="intro.jsp">
		<pattern>/intro/*</pattern>
	</decorator>
	
	<decorator name="notice" page="notice.jsp">
		<pattern>/notice/*</pattern>
	</decorator>
	
	<decorator name="main" page="main.jsp">
		<pattern>/*</pattern>
	</decorator>
</decorators>



위의 decorators.xml에서 uninstall 부분만 decorator를 적용하지 않으려 했지만 처음에는 적용 되지 않았고,
이에 sitemesh.xml의 아래 부분이 추가 되면서 문제가 해결 되었다.

 

<property name="decorators" value="/WEB-INF/decorators.xml" />
<excludes file="${decorators}" />


삽질은 정말 해도 해도 끝이 없는거 같다.

728x90
반응형
1 2 3 4 5