描述:所谓的模板就是一个页面的基础格式,很多网站的开头与结尾或者左右都很相似,变化的只有中间的部分,也就是所谓的页眉与页脚。但当我们自己用div+css做出来的效果会用到整个页面的包含,这样就会出现一个格式不良好的html,也就是说有两个html标签。并且<tittle>标签中的文字还不能够变化,这样的问题处理起来会很麻烦。这时我们可以用到sitemesh模板技术。
使用方法:
sitemesh-2.4.1文件夹中存在一个READNE.txt,这个就为使用方法。
解读使用方法
1) Copysitemesh-@VERSION@.jar to the WEB-INF/lib 将此jar包放到你的工程的lib文件夹中,让其自动buildpath,但是问题在于这个jar包在sitemesh-2.4.1文件夹中并没有找到,此文件夹中的lib文件夹中的jar都是都是供sitemesh使用的jar,但是不难发现在sitemesh-2.4.1文件夹中有个build.xml文件,这个文件就是将整个工程抓取成的一个xml文件。通过这个文件就可以反向的build出这个jar包。这里又用到了一门技术apache-ant-1.8.2(蚂蚁工具)。在其bin目录下有个ant.bat,在DOS中切换到sitemesh-2.4.1文件夹下,然后直接键入ant.bat启动这个工具就行了。但是一定要注意,首先先将ant.bat进行set path。这样才可以在任何目录下运行。运行完成以后就会发现在sitemesh-2.4.1文件夹中多出来两个文件夹build和dist,在dist中就能发现sitemesh-2.4.1.jar了。而build中就是工程源码。
2) Copy sitemesh.xmland decorators.xml to the WEB-INF/ 将sitemesh.xml和decorators.xml文件拷贝到WEB-INF下(sitemesh.xml文件在sitemesh-2.4.1文件的src\example-webapp\WEB-INF中有)。
3) Add the followingto WEB-INF/web.xml: 将如下描述添加到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>
4) 他给出了一个模板页面的样式,我们可以自己写。首先要导入他的标签。
<%@taglib uri="http://www.opensymphony.com/sitemesh/decorator"prefix="decorator" %>
<html>
<head>
标题写成这样就行了。可以随时变化
<title>MySite - <decorator:title default="Welcome!" /></title>
<decorator:head /> 这个也要写,包含头字段的东西,因为头中往往有javascript代码
</head>
<body>
<decorator:body/> 这个很重要,这个就替代了我们自己做的包含页面
</body>
</html>
5) 然后就是改造之前复制的decorators.xml文件了
将没用的删除,只留这个
<?xmlversion="1.0" encoding="ISO-8859-1"?>
<decoratorsdefaultdir="/WEB-INF/decorators"> 这个目录要如实写“/”代表网站
<decorator name="test"page="test.jsp"> 键入模板的jsp
<pattern>/agent.jsp</pattern> 什么样的路径去使用模板
</decorator>
</decorators>