sitemmesh是一个页面装饰框架,利用它可以很简单的对整个系统进行统一架构装饰,比如一个应用系统的web层可能就是top+left+content+footer四个部分组成(下图)
使用sitemesh定义好一个统一的框架后,程序员只需要关注动态的内容部分就可以了,而不需要在每个页面去单独的include一堆的footer,left,header之类的公共部分--框架只是一个工具,存在的目的在于提高生产率,减少重复劳动。
以下是这个sitemsh的装饰页面源码
<%@ page contentType="text/html; charset=GBK"%> <%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %> <html> <head> <title><decorator:title default="装饰器页面..." /></title> <decorator:head /> </head> <body> <jsp:include page="/header.jsp"></jsp:include> <jsp:include page="/left.jsp"></jsp:include> <decorator:body /> <jsp:include page="/footer.jsp"></jsp:include> </body> </html>非常简洁明了,把页面拆成可复用的组件单元,通过jsp include来引入
<%@ page contentType="text/html; charset=GBK"%> <%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %> <html> <head> <title><decorator:title default="装饰器页面..." /></title> <decorator:head /> </head> <body> <jsp:include page="/header.jsp"></jsp:include> <decorator:usePage id="thePage" /> <!-- 把当前页面赋值给thePage这个变量--> <jsp:include page="/<%=thePage.getProperty("meta.moduleName")%>/left.jsp"></jsp:include> <decorator:body /> <jsp:include page="/footer.jsp"></jsp:include> </body> </html>