Struts2+Sitemesh

需要jar:
sitemesh-2.4.2.jar
struts2-sitemesh-plugin-2.2.1.jar

web.xml
这里要注意顺序
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
	<display-name></display-name>
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
	</context-param>
	<filter>  
        <filter-name>struts-cleanup</filter-name>  
        <filter-class>  
            org.apache.struts2.dispatcher.ActionContextCleanUp  
        </filter-class>  
    </filter>  
    <filter-mapping>  
        <filter-name>struts-cleanup</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping> 
    <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>
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
		</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	
	 <jsp-config>
      <taglib>
               <taglib-uri>sitemesh-page</taglib-uri>
               <taglib-location>/WEB-INF/sitemesh-page.tld</taglib-location>
      </taglib>
      <taglib>
               <taglib-uri>sitemesh-decorator</taglib-uri>
               <taglib-location>/WEB-INF/sitemesh-decorator.tld</taglib-location>
      </taglib>

</jsp-config>
</web-app>



WEB-INF/decorators.xml
<?xml version="1.0" encoding="UTF-8"?>

<decorators defaultdir="/decorators">
	<decorator name="main" page="main.jsp">
		<pattern>/*</pattern>
	</decorator>
	<excludes>
		<pattern>/login.jsp</pattern>
		<pattern>/register.jsp</pattern>
	</excludes>
</decorators> 



WEB-INF/sitemesh.xml
<?xml version="1.0" encoding="UTF-8"?>
<sitemesh>
	<property name="decorators-file" value="/WEB-INF/decorators.xml" />
	<excludes file="${decorators-file}" />

	<page-parsers>
		<parser default="true"
			class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
		<parser content-type="text/html"
			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> 



WebRoot/decorators/main.jsp
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator"%> 
<%
	String path = request.getContextPath();
	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
      <head>
          <title><decorator:title default="Default Title" /></title>
          <decorator:head />
      </head>
     <body>Header<br>
        <decorator:body />
        <br>
        Footer
    </body>
</html>



WebRoot/pages/searchAll.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'searchAll.jsp' starting page</title>
    

  </head>
  
  <body>
    Search All
  </body>
</html>

猜你喜欢

转载自panyongzheng.iteye.com/blog/1275326