`
zhoujiangzi
  • 浏览: 93362 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Sitemesh使用

 
阅读更多

最近接触到Sitemesh这个工具,感觉用起来还是比较方便,比我们直接使用include要方便点,下面就将该工具的使用情况记录下来。

一.准备工具

    1.sitemesh-2.4.jar:sitemesh的核心jar包,里面包含了基本的tld标签文件

    2.servlet-api.jar :web项目需要的

二.编码

    1. sitemesh主要是通过过滤器来进行拦截我们的请求,然后将公用的信息附加到返回的信息中,所以先要配置过滤器,在web.xml中加上如下信息:

 

   <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> 

   2. 在WEB-INF目录下面创建decorators.xml文件来定义我们具体的配置,比如定义那些请求需要进行单独的配置等。

 

   

<?xml version="1.0" encoding="UTF-8"?>

<!-- 默认目录 -->
<decorators defaultdir="/decorators">

    <!-- 缺省装饰页 -->
    <decorator name="default" page="default.jsp">
        <pattern>/*</pattern>
    </decorator>
     
    <!-- 自定义装饰页 -->
    <decorator name="index" page="default.jsp">
        <pattern>/index.do</pattern>
    </decorator>
</decorators>

    其中defaultdir定义我们装饰页面的目录,缺省配置是所有的请求都会装饰到default.jsp页面中,也可以单独配置index.do请求道default.jsp页面中,根据自己的需要来进行配置。

 

   3.创建我们的装饰页面

      在decorators目录下面创建default.jsp,内容如下:

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>



<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/page" prefix="page" %>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">


</head>
<body>
<h2 align="center">网站头部信息</h2>
<hr>
    <decorator:body></decorator:body>
<hr/>
<p align="center">网站底部信息</p>
</body>
</html>

    这里需要将sitemesh的标签导入,我这里只将body位置留出来,然后被装饰的页面的body信息就会被装饰到这里进行完整显示出来,从而不需要关心头部和底部信息。

 

    4.创建被装饰页面test.jsp

      在WEB-INF目录下面创建jsp目录,然后再创建test.jsp页面,内容很简单

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

</head>
<body>
这里存放具体的内容,不用关心头部和底部内容
</body>
</html>

    就在body里面存放具体的内容

 

   5.编写servlet来访问test.jsp

    创建一个servlet:

   

package com.jacksoft.sitemesh.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class IndexServlet extends HttpServlet{

    /**
      * @Fields serialVersionUID : TODO
      */
    
    private static final long serialVersionUID = 1L;

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        req.getRequestDispatcher("WEB-INF/jsp/test.jsp").forward(req, resp);
    }
    
    
    
}

    然后再web.xml中配置servlet,当然现在高版本的容器已经支持注解的形式来配置servlet。

 

   

  <servlet>
  	<servlet-name>test</servlet-name>
  	<servlet-class>com.jacksoft.sitemesh.servlet.IndexServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>test</servlet-name>
  	<url-pattern>/index.do</url-pattern>
  </servlet-mapping>

    6. OK,到这里已经差不多了,启动server,访问http://127.0.0.1:8080/test/index.do

 

       

 

  当前Sitemesh还有很多其他的标签,比如head啊之类的,具体可以到http://wiki.sitemesh.org/pages/recentlyupdated.action?key=sitemesh这里去查看,有对应的文档

 

   附上对应的jar

  

 

      

  • 大小: 17.1 KB
分享到:
评论

相关推荐

    sitemesh使用例子

    sitemesh 使用例子。 &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;decorators defaultdir="/decorators"&gt; &lt;!-- 此处用来定义不需要过滤的页面 --&gt; &lt;excludes&gt; &lt;/excludes&gt; &lt;!-- 用来定义装饰器要过滤的...

    siteMesh使用示例

    如果需要对某些特定页面不应用装饰,或者只对特定部分进行装饰,可以使用 `excludes` 和 `includes` 属性在 `web.xml` 中配置 SiteMesh 过滤器。 9. **优化与性能** SiteMesh 通常对性能的影响很小,但可以通过...

    sitemesh的使用和例子

    ### Sitemesh使用示例 在提供的压缩包文件中,有多个HTML和JSP文件,它们可能是Sitemesh的使用示例: - **index.html**:通常作为网站的主页,可能展示了Sitemesh如何应用全局布局。 - **badsource.html**、**...

    siteMesh demo+文档

    接下来是"siteMesh使用文档"。这份文档通常会涵盖以下几个关键知识点: 1. **安装SiteMesh**:这通常包括下载SiteMesh的库文件,将其添加到你的项目构建路径中(例如,如果你使用Maven,可以在pom.xml中添加对应的...

    页面装饰器(sitemesh)实例源代码

    3. **创建装饰模板**:Sitemesh使用HTML文件作为装饰模板,你可以根据需求创建一个基础模板,例如`layout.html`,该模板通常包含页头、页脚、侧边栏等公共部分。 4. **设置页面内容**:对于每个需要装饰的页面,...

    使用sitemesh替换tiles2,spring mvc+spring web flow+sitemsh

    3. **创建装饰模板**:Sitemesh 使用一个名为 `decorators` 的目录来存储装饰模板。这些模板定义了页面的通用结构,如头部、底部和侧边栏。例如,你可以创建一个 `default.jsp` 文件,其中包含你的页面布局。 4. **...

    sitemesh-3.0.0的库和源码

    - **更强大的过滤器**:在Servlet容器中,Sitemesh 使用过滤器拦截请求和响应,增强了对页面装饰的控制。 - **API改进**:提供了更为简洁、易于使用的API,便于开发者进行定制和扩展。 - **性能优化**:相比之前的...

    jsp 页面框架sitemesh 全面帮助文档及示例

    3. **Sitemesh使用步骤** - **安装与导入**:下载Sitemesh库并将其加入到项目依赖中。 - **配置web.xml**:设置Sitemesh Filter,包括装饰器的配置和默认装饰器的选择。 - **创建装饰器模板**:设计HTML模板,...

    sitemesh的使用方法demo

    通过这个简单的 demo,你可以学习到如何在实际项目中集成和使用 Sitemesh,以提高网站的整体一致性和美观性。同时,Sitemesh 还支持自定义装饰策略、多装饰器应用、动态装饰等功能,可以根据项目需求进行深入研究和...

    sitemesh使用教程

    SiteMesh 是一个开源的 J2EE 页面布局和装饰框架,主要用来解决Web应用程序中的内容与表现层分离的问题。它的设计灵感来源于设计模式中...通过合理地使用SiteMesh,你可以创建出既具有统一风格,又易于维护的Web应用。

    初试sitemesh实现模块简易整合

    3. **使用Spring MVC或Struts2**:如果项目使用了Spring MVC或Struts2等框架,Sitemesh有对应的整合方式,可以更方便地实现页面装饰。 4. **处理Ajax请求**:Sitemesh默认不处理Ajax请求,但可以通过自定义Filter或...

    SiteMesh2.3很全的一个资料

    8. **文档和实例**:在提供的资料中,文档将详细介绍如何安装、配置和使用SiteMesh 2.3,实例则可以帮助初学者快速理解和上手实践。 9. **依赖库(Lib)**:SiteMesh 2.3 包含了运行所需的库文件,确保了在各种环境...

    struts2-sitemesh-plugin-2.2.1.1.jarstruts2

    Sitemesh使用`&lt;decorator&gt;`标签来定义装饰器,以及`&lt;include&gt;`标签来插入页面内容。 **Struts2 Sitemesh插件** `struts2-sitemesh-plugin-2.2.1.1.jar`是Struts2与Sitemesh集成的关键组件。它使得Struts2应用可以...

    sitemesh(example).rar_sitemesh_装修网站java

    - 在需要装饰的页面上,可以使用特殊的注释(例如 `&lt;@sitemesh.page&gt;`)来指定页面内容应插入到布局的哪个部分。 - SiteMesh 提供了一些自定义选项,比如通过 `decorators.xml` 文件来指定哪些页面使用哪种布局,...

    sitemesh-2.3.zip

    在 `sitemesh-2.3.zip` 文件中,包含了该框架的源码、文档、构建文件以及库文件,便于我们了解和使用 Sitemesh。 1. **构建文件** - `build.properties`: 这是一个属性文件,包含了构建过程中的配置参数,如版本...

    sitemesh-2.2.1.rar

    2. **过滤器机制**:Sitemesh使用Servlet过滤器来拦截HTTP请求,对响应内容进行处理。当用户请求一个页面时,Sitemesh过滤器会捕获这个请求,然后应用装饰模板。 3. **模板语言**:Sitemesh支持多种模板语言,包括...

    SiteMesh v2.4.1(full).zip

    7. **API 使用**:在 `sitemesh-2.4.1.jar` 文件中,包含了 SiteMesh 的核心 API,开发者可以通过编程方式控制 SiteMesh 的行为,如手动触发装饰过程或获取当前装饰状态。 8. **文档与示例**:通常,完整的 ...

    Sitemesh例子分享

    **Sitemesh使用** 1. **标记可装饰页面**:在要装饰的JSP或HTML页面中,使用`&lt;@sitemesh.page&gt;`指令标签来标记页面,让Sitemesh知道这个页面需要被装饰。 2. **自定义装饰规则**:可以通过配置文件(通常为`...

    sitemesh 讲解ppt

    SiteMesh 使用装饰器(Decorator)模式来实现其功能。装饰器模式允许在不修改原有对象的情况下,为对象添加新的行为或属性。在 SiteMesh 中,装饰器页面是包含页面布局和通用元素的模板,比如页头、页脚和侧边栏。当...

    SiteMesh-SpringMVC-Mybatis

    通过使用 SiteMesh,可以将页面的头部、底部、侧边栏等公共部分抽取出来,作为模板,然后在每个页面中应用这个模板,从而保持网站的整体风格一致。SiteMesh 使用过滤器(Filter)来拦截HTTP请求和响应,将页面内容与...

Global site tag (gtag.js) - Google Analytics