SiteMesh 是一个网页布局和修饰的框架,利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的。
Sitemesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大 量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的banner,一致的版权,等等。 它不仅仅能处理动态的内容,如jsp,php,asp等产生的内容,它也能处理静态的内容,如htm的内容, 使得它的内容也符合你的页面结构的要求。甚至于它能将HTML文件象include那样将该文件作为一个面板 的形式嵌入到别的文件中去。所有的这些,都是GOF的Decorator模式的最生动的实现。尽管它是由java语言来实现的,但它能与其他Web应用很好地集成。
使用include
动态嵌入子页面也能实现上述效果,缺点是每个页面都要动态嵌入子页面。
<body> <jsp:include page="./header.jsp" /> <div> <!-- 使用shiro标签 --> <shiro:hasPermission name="admin:*"> <a href="<%=request.getContextPath()%>/user/home">用户管理</a><br/> </shiro:hasPermission> <a href="#" onclick="updateRole('<%=request.getContextPath()%>/perm/delRole')">删除用户管理角色</a><br/> <a href="#" onclick="updateRole('<%=request.getContextPath()%>/perm/addRole')">添加用户管理角色</a><br/> </div> <jsp:include page="./footer.jsp" /> </body>