-
sitemesh 配置多个装饰页面的问题3
decorators.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<decorators defaultdir="/decorators">
<!-- Any urls that are excluded will never be decorated by Sitemesh -->
<excludes>
<pattern>/fckeditor/*</pattern>
</excludes>
<decorator name="view" page="frame2.jsp">
<pattern>/document_view.jsp</pattern>
<pattern>/docitem_view.jsp</pattern>
</decorator>
<decorator name="frame" page="frame.jsp">
<pattern>/*</pattern>
</decorator>
<decorator name="panel" page="panel.jsp"/>
<decorator name="printable" page="printable.jsp"/>
<decorator name="black" page="black.jsp"/>
<decorator name="nopanelsource" page="nopanelsource.jsp"/>
<decorator name="badpanelsource" page="badpanelsource.jsp"/>
<decorator name="velocity" page="velocity.vm">
<pattern>/velocity.html</pattern>
</decorator>
<decorator name="freemarker" page="freemarker.ftl">
<pattern>/freemarker.html</pattern>
</decorator>
<decorator name="test" page="test.jsp">
<pattern>/agent.jsp</pattern>
</decorator>
</decorators>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" id="fckeditor-java" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
<display-name>FCKeditor.Java Sample Web Application</display-name>
<description>FCKeditor.Java Sample Web Application</description>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<welcome-file-list>
<welcome-file>/login.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>cleanup</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ActionContextCleanUp
</filter-class>
</filter>
<filter-mapping>
<filter-name>cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>
com.opensymphony.module.sitemesh.filter.PageFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
<!-- singleSession默认为true,若设为false则等于没用OpenSessionInView -->
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>Connector</servlet-name>
<servlet-class>
net.fckeditor.connector.ConnectorServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Connector</servlet-name>
<!-- Do not wrap this line otherwise Glassfish will fail to load this file -->
<url-pattern>/fckeditor/editor/filemanager/connectors/*</url-pattern>
</servlet-mapping>
</web-app>
我想有两个页面使用单独的装饰页面。其他页面使用另外一个,像上面红色字体那样配置不可以吗?
需要怎么配置,有熟悉sitemesh的兄弟帮忙解答一下。谢谢2009年4月20日 10:31
目前还没有答案
相关推荐
装饰模板通常包含头部、尾部和侧边栏等通用部分,这些部分可以跨多个页面共享,从而保持网站的统一风格。sitemesh2提供了易于配置的过滤器(Filter)来实现这一功能。 接着,我们要了解velocity。Velocity允许...
当一个请求到达服务器,Sitemesh会根据配置找到合适的装饰器,然后使用它来包装请求的页面内容。 在Sitemesh中,`index.html` 可能是一个示例母版页面,包含了网站的标准布局。其他文件如 `badsource.html`、`...
它允许开发者定义一个装饰器页面,该页面包含了所有公共的头部、脚部和其他元素,然后通过配置将这个装饰器页面应用于所有的实际内容页面。这样,无论何时需要更新公共元素,只需修改装饰器页面即可,极大地提高了...
一个装饰器通常包含多个区域(例如header, content, footer),开发者可以将页面内容插入到特定的区域中。 2. **布局文件(Layout File)**: 布局文件是HTML模板,用于定义页面的整体结构和样式。它可以包含多个...
3. **定义装饰模板**:SiteMesh允许你创建一个或多个装饰模板,这些模板定义了页面的结构,如页眉、页脚、侧边栏等。你可以使用HTML或者JSP来编写模板。 4. **应用装饰**:通过在JSP页面中使用特殊的注解(例如`<@...
你可以为不同类型的页面定义多个装饰器,根据URL或特定条件选择使用哪个装饰器。 - 装饰器通过`<@include page="..."/>`指令引入被装饰的页面内容。 4. **页面布局** - 在Sitemesh中,页面布局通过`...
Sitemesh的出现解决了这个问题,它允许开发者定义一个或多个装饰模板,然后自动将这些模板应用到所有的Web页面上。 **工作原理**: Sitemesh的工作原理主要是通过拦截HTTP请求,对响应内容进行处理。当用户请求一个...
1. **布局模板**:Sitemesh支持自定义布局模板,可以创建多个模板以适应不同类型的页面需求。 2. **局部装饰**:允许开发者指定特定页面的部分区域进行装饰,而不是整个页面。 3. **易集成**:Sitemesh可以轻松地...
- **内容区域**:在装饰模板中,可以定义多个内容区域,比如`<s:property value="content" />`,这样实际的页面内容可以被插入到这些指定的区域中。 - **自定义装饰规则**:开发者可以通过编程或者配置文件定义装饰...
- **Decorator(装饰器)**:装饰器是Sitemesh的核心,它定义了页面的通用布局,可以包含多个区域,如header、footer、content等。每个区域可以独立定义,以便插入不同的页面内容。 - **Decorator选择器**:允许...
5. **自定义装饰器**:除了默认的装饰器外,还可以根据需求创建多个装饰器。通过在`<%@ include file="/WEB-INF/decorators/default.jsp" %>`中指定不同的装饰器名称,可以为不同类型的页面应用不同的布局。 6. **...
1. **自定义装饰器**:除了默认的 `decorator.html`,你还可以创建多个装饰器文件以满足不同页面或模块的需求。 2. **过滤规则**:你可以通过配置 Sitemesh 过滤器,决定哪些 URL 需要应用装饰,哪些不需要。 3. **...
如果你希望所有页面都使用同一个装饰模板,可以在 `web.xml` 中全局设置。 5. **自定义装饰**:Sitemesh 允许你在特定页面或部分页面上覆盖装饰。你可以使用 `<sitemesh:property>` 标签来访问和修改装饰模板中的...
每个装饰器可以应用于多个页面。 - **Content Pages**:内容页面是实际业务逻辑产生的页面,它们会被装饰器包裹。 - **Decorator Mapping**:通过配置文件或注解,我们可以决定哪个页面应该被哪个装饰器装饰。 5....
装饰器通常包含一个头部、一个底部以及一个或多个“装饰区”(Decorated Areas),这些区域将被实际的页面内容替换。 - **定义装饰器**: - 在`decorators.xml`文件中定义装饰器: ```xml <head><![CDATA[ <!...
它可以被多个页面共享,以保持网站的一致性。 - **过滤器(Filter)**:SiteMesh通过Servlet Filter实现对HTTP请求的拦截,对请求和响应进行处理,然后将内容传递给装饰器进行布局。 **2. SiteMesh工作原理** 当...
7. **最佳实践**:在实际项目中,推荐为不同类型的页面创建多个 Decorator,比如登录页面、普通页面和错误页面可能需要不同的布局。此外,保持 Decorator 文件的简洁性和可维护性,避免过多的逻辑代码。 通过以上...
SiteMesh则是一个网页布局和装饰框架,它允许开发者定义全局的页面头部、底部和侧边栏,以便在多个页面间共享。将Struts2与SiteMesh整合,可以实现更加统一和规范化的网站外观,并减少重复代码。 整合Struts2和...
除了基础功能,sitemesh 还提供了很多高级特性,如:自定义装饰器选择策略、页面属性传递、支持 Velocity 和 FreeMarker 等模板引擎等。这些特性使得 sitemesh 能够适应更复杂的项目需求。 通过这个“sitemesh简单...