在ssh项目中中引入sitemesh框架,实现装饰页和内容的分离,个人理解为sitemesh过滤了请求的连接,对于需要装饰的页面加载完装饰页面的部分,实际上有点儿像include这个属性,不同的是include直接把jsp整体加进去,而sitemesh的decorator是分title、head、和body的内容分别嵌套进入装饰页。
不过需要注意的是到浏览器端js和css等加载的顺序,被装饰的页面的js、css以及JavaScript是排在装饰页面内包含的js、css等的前面的,所以如果装饰页面和被装饰页面都有对一个组件的定义,那么这个组件最后显示的效果是被装饰页面里面定义的效果。
现实的例子是我在被装饰页面里面写了表格的初始化,而在装饰页面里面没有写,结果是刷新一下,效果闪一下又不见了。而如果在装饰页面里面定写了初始化,被装饰页面就可以省略了。
1、在项目中引入sitemesh
2、在web.xml配置添加过滤器
<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> <dispatcher>FORWARD</dispatcher> <dispatcher>REQUEST</dispatcher> </filter-mapping> <filter-mapping>
3、添加sitemesh配置文件:decorators.xml
<?xml version="1.0" encoding="UTF-8"?> <decorators defaultdir="/decorators"> <excludes> <pattern>/login.*</pattern> <pattern>/error.*</pattern> </excludes> <decorator name="main" page="MainBody.jsp"> <pattern>/WEB-INF/ServiceManage/*</pattern> </decorator> </decorators>
exclude代表排除不要装饰的页面,而decorator表示装饰的属性,page里面的jsp表示你的装饰页
pattern表示你要被装饰页面的路径,把你要装饰的页面放在这个目录下面,当然也可以定义多个
4、装饰页面MainBody.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <base href="<%=basePath%>"/> <decorator:head></decorator:head> <title>XX系统—— <decorator:title default="欢迎你!"></decorator:title></title> <meta http-equiv="pragma" content="no-cache"/> <meta http-equiv="cache-control" content="no-cache"/> <meta http-equiv="expires" content="0"/> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"/> <meta http-equiv="description" content="This is my page"/> <link rel="stylesheet" type="text/css" href="styles.css"/> <script language=javascript src="clock.js"></script> <%java.text.SimpleDateFormat simpleDateFormat = new java.text.SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); java.util.Date currentTime = new java.util.Date(); String time = simpleDateFormat.format(currentTime).toString(); %> </head> <body onload="showtime()"> <div id="container"> <div id="header"> XX系统 </div> <div id="main"> <div id="menu" > <%@include file="/menus.jsp" %> </div> <div id="content"> <decorator:body></decorator:body> <br/><a href=Login.jsp>注销</a> </div> </div> <div id="footer" > 版权所有 <form name=clock > <input name="thetime" style="font-size: 9pt;color:#000000;border:0" size="30"/> </form> <%=time%> </div> </div> </body> </html>
相关推荐
5. **SiteMesh**:SiteMesh是一个页面布局和装饰框架,用于统一网站的头部、底部、侧边栏等元素,提高页面的复用性和一致性。在"SSH2"中,SiteMesh可以与Struts2结合,帮助开发者轻松实现页面的布局设计,提高用户...
网上拍卖系统是一个典型的Web应用程序,它利用了Java技术栈中的Spring、Struts和Hibernate(SSH)框架进行构建。SSH架构是Java开发企业级应用的常用选择,因其强大的功能和灵活性而备受青睐。在这个项目中,SiteMesh...
4. **Sitemesh**:Sitemesh是一个网页布局和装饰框架,主要用于改善Web应用的外观和统一页面风格。它能够将公共的头部、尾部、侧边栏等元素应用于所有页面,使得页面设计更加整洁,同时也便于更新和维护。 5. **...
Sitemesh是一个页面布局和装饰框架,用于Web应用程序。它可以帮助开发者统一网站的外观和感觉,通过定义模板来实现全局布局。在SSH2集成中,Sitemesh可以用来装饰Struts2的Action结果页面,确保每个页面都有统一的...
Sitemesh则是一个页面布局和装饰框架,它能够统一整个网站的外观和感觉。在基于SSH的电子拍卖系统中,Sitemesh可以用来定义全局的页眉、页脚、侧边栏等,使每个页面都保持一致的样式,提升用户体验。 结合以上四个...
SiteMesh是一个页面布局装饰框架,它可以将多个不同的HTML页面合并成一个完整的页面。通过使用SiteMesh,开发者可以轻松地维护一致的页面布局结构。 ### 五、综合应用 SSH框架的综合应用涉及到各个组件之间的集成...
- **用途**:SiteMesh是一个网页布局管理器,用于装饰JSP页面。 - **作用**:支持页面布局的设计,提高了Web应用的可维护性和扩展性。 #### 35. **slf4j*.jar** - **用途**:SLF4J(Simple Logging Facade for Java...
本项目以SSH框架为核心,结合文件上传下载功能,以及Ajax和Sitemesh等技术,提供了丰富的实践经验和学习资源。 1. **Struts**:Struts是MVC(Model-View-Controller)设计模式的一种实现,主要用于处理用户界面和...
SiteMesh框架被用来统一和装饰整个网站的页面布局。它可以在每个页面上添加统一的头部、尾部和侧边栏,提升用户体验并简化前端开发。SiteMesh通过拦截HTTP响应,将内容与模板结合,从而实现页面的装饰。 在"e拍网上...
Sitemesh是一款页面布局和装饰框架,它可以帮助开发者创建一致的页面外观和布局,将页面的头部、底部、侧边栏等公共部分与内容区域分离,提高了网页设计的效率和可维护性。 在"reg_login_Eclipse"这个项目中,我们...
1. 添加依赖:整合SSH,需要在项目中引入相应的jar包,包括Struts2、Spring、iBatis以及它们的依赖库,例如sitemesh用于页面装饰。确保包含所有必要的jar,如描述中提到的,这里有18个jar包,涵盖了基本需求。 2. ...