Sitemesh和Struts2结合时要特别注意它们各自Filter的顺序,否则会导致双方都不能正常工作。而又由于Struts2在2.1.3之前使用的是FilterDispatcher,2.1.3之后推荐使用StrutsPrepareFilter和StrutsExecuteFilter替代FilterDispatcher,因此配制上又会有所不同。 2.1.3之前的版本,sitemesh的filter要介于StrutsPrepareFilter和FilterDispatcher之间,配制如下:
struts-cleanup org.apache.struts2.dispatcher.ActionContextCleanUp struts-cleanup /* sitemesh com.opensymphony.module.sitemesh.filter.PageFilter sitemesh /* struts org.apache.struts2.dispatcher.FilterDispatcher struts /*
2.1.3之后的版本,sitemesh的filter要介于StrutsPrepareFilter和StrutsExecuteFilter之间,配制如下:
struts-cleanup org.apache.struts2.dispatcher.ActionContextCleanUp struts-cleanup /* struts-prepare org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter struts-prepare /* sitemesh com.opensymphony.module.sitemesh.filter.PageFilter sitemesh /* struts-execute org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter struts-execute /*