首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Sitemesh施用

2013-07-08 
Sitemesh使用filterfilter-namesitemesh/filter-namefilter-classcom.opensymphony.sitemesh.weba

Sitemesh使用
<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施用
?

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

?

? ?附上对应的jar

??

?

? ? ??

热点排行