Easylayout是通过借鉴Java里的继承和重写思想,最大可能复用页面代码。
适用场景:多个页面,页面布局一致,比如上方header,下方footer,中间左边菜单栏,中间右边为主要内容,只有主要内容不同,解决用include无法解决或不方便解决问题。
优点:低依赖(仅依赖commons-logging.jar),低侵入(无需在web.xml里定义,或其他额外配置文件),对其他框架无影响,无需考虑与其他框架的集成。
缺点:欢迎补充......
页面需申明标签:
<%@ taglib prefix="layout" uri="/easy-layout.tld"%>
jar包很简单很小,约37Kb,总共三个标签:
1. layout:definition 定义模板页,供其他引用页使用,相当于建一个父类。
2. layout:component
在模板页里,代表将要被其他引用页重写的部分,相当于在Java里父类里定义方法;
在引用页里,将重写模板页里将应申明的标签内容,相当于在Java里子类里重写父类的方法。
3. layout:render 申明需要引用的模板页,相当于在Java里引用需要的父类。
在附件的demo里
layout.jsp 模板页
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="layout" uri="/easy-layout.tld"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <c:set var="ctx" value="${pageContext.request.contextPath}"></c:set> <!-- layout:definition 定义模板,相当于Java里的创建父类 --> <layout:definition> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title> <%-- layout:component 申明要被重写的部分,可以有默认值 --%> <layout:component name="title">欢迎使用stripes-layout</layout:component> </title> <link rel="shortcut icon" href="${ctx}/style/favicon.ico" type="image/icon" /> <link type="text/css" rel="stylesheet" href="${ctx}/style/global.css" /> <link type="text/css" rel="stylesheet" href="${ctx}/style/common.css" /> <link type="text/css" rel="stylesheet" href="${ctx}/style/demo.css" /> <!-- layout:component 申明要被重写的部分,可以无内容,由引用页实现具体内容 --> <layout:component name="style"></layout:component> <layout:component name="script"></layout:component> </head> <body> <div id="container" style="margin:0em auto;width:1000px;"> <div id="header">Header部分</div> <div> <table class="mainTable"> <tr> <td style="width: 180px;vertical-align: top;margin-left:0;"> <ul class="ulList"> <li><a href="${ctx}/">我的首页</a></li> <li><a href="${ctx}/hello.jsp">Hello World</a></li> <li>个人信息</li> <li>我要XXXX</li> <li>我的XXXX</li> <li>XXXXXXXX</li> <li>退出登录</li> </ul> </td> <td> <fieldset class="fieldset"> <legend> 当前位置:<layout:component name="legend">无</layout:component> </legend> <layout:component name="content">这里是想重写的部分</layout:component> </fieldset> </td> </tr> </table> </div> <div id="footer">footer: 填内版权等 Copyright (C) ...</div> </div> </body> </html> </layout:definition>
index.jsp, hello.jsp 引用了layout.jsp,并重写部分内容。
hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="layout" uri="/easy-layout.tld"%> <!-- layout:render 申明要引用的模板页,相当于Java里要继承的父类 --> <layout:render name="/layout.jsp"> <!-- layout:component 重写模板页里对应的内空,相当于Java里重写父类的方法 --> <layout:component name="title">Hello World:欢迎使用stripes-layout</layout:component> <layout:component name="legend">Hello World,欢迎使用stripes-layout</layout:component> <layout:component name="content"> <br />Hello,欢迎使用Easylayout<br/>1.<br/>2.<br/>3.<br/>...</layout:component> </layout:render>
附件名:easylayout-demo
相关推荐
jsp内置对象及jsp复用,一个还可以的教程,分享一下。呵呵...
JSP页面嵌套word组件,实现Office软件中所有功能的调用
myeclipse2017 jsp页面 <c:if>在select里面写 导致后面代码不是彩色问题 一半黑一半彩色
自己写的登录页面自己写的登录页面自己写的登录页面自己写的登录页面
炫酷的登录页面,css样式,js等等全部都有,登录效果也是写好的,其登陆用户名和密码是写死的,自己可以根据需要改成动态的
jsp登录页面设计jsp登录页面设计jsp登录页面设计
JSP 代码生成工具 JSP Maker 下载JSP 代码生成工具 JSP Maker 下载 JSPMaker功能列表:(单击链接查看更多详细信息和屏幕截图) 快速入门向导可快速生成JSP网站 可选的JSP列表,添加/复制,查看,编辑,删除和搜索每个...
该组件为jsp页面数据分页通用组件,可用于所有struts或jsp+javabean的页面分页功能!在实际项目中完全可以适用!内含源码以及详细注释!!好东西,给大家一起学习分享!
jsp/html 页面截图代码 可按不同尺寸截取
我的实例代码 博文链接:https://zmx.iteye.com/blog/737374
jsp页面登录代码 客户端验证 服务器端验证代码
这是经典的JSP注册页面代码,希望对新学JSP的同学们,提供微薄的帮助,谢谢同学们!
jsp暴源代码工具,jsp暴源代码工具,jsp暴源代码工具,jsp暴源代码工具,jsp暴源代码工具
JSP调用Flex4组件演示代码 FLEX4源码项目 JSP WEB源码项目 非常经典的演示DEMO,完全测试成功。
jsp页面引入KindEditor文本编辑器
打印 页面打印 实例 jsp页面打印 打印功能实例
不错的适合练手、课程设计、毕业设计的JSP项目源码:JSP基于Iptables图形管理工具的设计与实现(源代码+论文).rar不错的适合练手、课程设计、毕业设计的JSP项目源码:JSP基于Iptables图形管理工具的设计与实现(源代码...
JSP实用组件JSP实用组件JSP实用组件
24款css翻页代码 BODY { FONT-SIZE: 12px;FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;WIDTH: 60%; PADDING-LEFT: 25px; } /*CSS Digg style pagination*/ DIV.digg { PADDING-RIGHT: 3px; PADDING-...