你的html或jsp还在每个页面都加载同样的js/css吗?或者是每个页面都在import其他页面?
现在说的就是简化这些操作,不要让你的代码冗余这么多重复的东西,让sitemesh来帮助你吧。看下面:
我有一些公共的js和css,写个application.jsp,全部放在里面。看下图,注意后面的<decorator:head /> 及body里面的 <decorator:body />。什么意思呢?公共文件+私用文件不就是所有文件了吗?
其他步骤:
1,下载sitemesh-2.4.2.jar ,并导入工程;
2,在web.xml里面添加如下代码
<filter>
<filter-name>SiteMeshFilter</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SiteMeshFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
3,在工程WEB-INF下面创建decorators.xml,并拷贝下面内容在里面,具体内容需要自己修改
<span style="white-space:pre"> </span><?xml version="1.0" encoding="UTF-8"?>
<span style="white-space:pre"> </span><decorators defaultdir="/WEB-INF/view/">
<span style="white-space:pre"> </span><excludes>
<span style="white-space:pre"> </span><pattern>/static/*</pattern>
<span style="white-space:pre"> </span> <pattern>/loginSubmit.do</pattern>
<span style="white-space:pre"> </span> <pattern>/loginOut.do</pattern>
<span style="white-space:pre"> </span></excludes>
<span style="white-space:pre"> </span><decorator name="adminLayout" page="applicationShell.jsp">
<span style="white-space:pre"> </span> <pattern>*.do</pattern>
<span style="white-space:pre"> </span></decorator>
<span style="white-space:pre"> </span></decorators>
4,然后下个jsp测试下,注意测试路径不要在上面配置的“非装饰”路径中
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" src="${staticUrl}/city/city.js"></script>
</head>
<body>
</body>
</html>
测试:
PS:此文内容是在已有的工程中测试的,没有单独开新工程测试,如有遗漏之处,敬请提出,感激不尽。