`

sitemesh配置小结

阅读更多

今天又再一次配置了一个小小的练习项目,在配置sitemesh的过程中,总结了一下对sitemesh需要注意的几点。

 

具体的jar包不再累述。网上实在太多。把需要的都放入lib中就好。

 

我今天配置的问题是出在web.xml的配置中。

 

web.xml配置

	
	<filter>
		<filter-name>struts2-clean</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>
	</filter>
	
	<filter>
		<filter-name>sitemesh</filter-name>
		<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
	</filter>
	
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>
	</filter>
	
	<!--下面的sitemesh一定要注意放在struts2-clean与struts2之间 -->
	<filter-mapping>
		<filter-name>struts2-clean</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<filter-mapping>
		<filter-name>sitemesh</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
		
	
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/struts/*</url-pattern>
	</filter-mapping>
	
	

 这个配置与我第一次的配置有点小的出入。将strut2的filter-class由原来的org.apache.struts2.dispatcher.ng.filter .StrutsPrepare AndExecuteFilter这一个配置分成了struts-clean的StrutsPrepareFilter 与struts2的StrutsExecuteFilter 这两个filter。所以当我配置这次sitemesh时没有注意到顺序问题。将sitemesh配置在最后,所以在我做好配置启动后却无法看到sitemesh的效果。

这种很低级的错误也是我这种新人常常不注意的地方。

 

decorator.xml配置没有什么多说的。

 

<decorators defaultdir="/WEB-INF/struts-view/decorator">
    <!-- 不需要装饰的页面放在这里面 -->
    <excludes>    
		 
    </excludes>
    <decorator name="main" page="decorator.jsp">
		<pattern>*</pattern>
    </decorator>
</decorators>

 

sitemesh.xml配置(可选)

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

    <decorator-mappers>
        <mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
            <param name="config" value="${decorators-file}"/> 
        </mapper>
    </decorator-mappers>
</sitemesh>
 

没有特别改动的话应该是没有问题了。关键在于web.xml中的顺序问题,稍加注意就好了。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics