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
相关推荐
1. **JSP指令**:比如`<%@ include file="...jsp" %>`, 这个指令可以将指定的JSP文件内容插入到当前页面中,实现代码复用。另一个是`<jsp:include page="...jsp">`, 它不仅包含静态内容,还可以动态地插入内容,因为...
JSP注册页面的代码详解 JSP注册页面的代码是JSP编程语言中的一种经典实现方式,旨在帮助新学JSP的同学们掌握基本的JSP编程技术。本文将对JSP注册页面的代码进行详细解析,帮助读者更好地理解JSP编程语言。 标题:...
`jsp页面数据分页通用组件`就是这样一个工具,它为开发者提供了便捷的方式来实现这一功能。这个组件适用于所有基于Struts或者纯JSP+JavaBean的项目,具有高度的可复用性和可扩展性。 1. **分页原理** 数据分页主要...
例如,在上面的代码中,我们可以看到jsp页面的基本结构,包括指令、脚本块、<jsp:forward>标签等。jsp页面用于处理用户输入的信息,并根据验证结果跳转到不同的页面。 5. 认证机制: 在jsp登录页面设计中,我们使用...
【标题解析】:“炫酷的登录jsp页面完整代码”指的是一个使用JSP技术构建的具有视觉吸引力的登录界面。这个项目可能包含了一整套的前端和后端代码,旨在为用户提供一个美观且功能完整的登录体验。 【描述详解】:...
JSP页面嵌套word组件,实现Office软件中所有功能的调用
这个"jsp暴源代码小工具"看起来是一个简单实用的程序,用于查看JSP源代码,对于开发者调试和学习JSP非常有帮助。 **源代码暴露问题**: 在Web开发中,源代码暴露是一个安全问题。如果JSP源代码被不法分子获取,他们...
这样,你可以在多个页面中复用分页组件,同时保持代码整洁。 总的来说,JSP分页是一项基本但重要的技能,理解和掌握它可以提高你的Web开发效率。通过合理的前后端配合,我们可以实现高效、灵活的分页功能,为用户...
在实例代码中,`JspsmartUpload`可能是该组件的实现类或者核心库文件,它包含了实际处理文件上传的逻辑。你可以通过阅读和分析这个文件,了解其内部工作原理,并根据自己的需求进行调整。 博主提供的链接(<https:/...
这种方法可以实现页面的模块化,提高代码复用性。例如,我们可以将头部和底部信息分别保存为单独的文件,然后在每个页面中通过`<jsp:include>`引入,这样修改一处即可更新所有页面的相应部分。 4. **CSS布局**: CSS...
【JSP调用Flex4组件演示代码】是一个典型的Web应用程序开发示例,它结合了Java服务器页面(JSP)和Adobe Flex4技术,展示了这两者之间的交互。在现代Web开发中,这种混合技术允许开发者利用Flex4的强大富互联网应用...
这个“JSP特效代码集”可能包含了各种JSP页面中的特效实现,如动态数据展示、动画效果、交互控件等,对于学习和复用JSP特效代码非常有帮助。通过深入理解这些概念和实践,开发者可以构建更加高效、美观且功能丰富的...
JavaBean组件可以通过jsp:useBean元素来访问特定的JavaBean组件。 在JSP页面中,JavaBean组件可以提供了以下几种功能: * 数据存储:JavaBean组件可以存储数据,并且可以通过jsp:useBean元素来访问这些数据。 * ...
动作标签以`<jsp:`开头,如`<jsp:include>`用于包含其他页面,`<jsp:useBean>`用于实例化Java对象。声明式标签则以`开头,如`<%@ taglib>`用于引入标签库,`<%@ page>`用于设置页面属性。 四、EL表达式和JSTL的协同...
JSP是一种服务器端的动态网页技术,它可以嵌入Java代码,用于处理动态内容。而Vue.js则是一款轻量级的前端MVVM框架,它通过声明式渲染数据到视图,实现了数据和视图的双向绑定,简化了前端开发。 **集成Vue.js到JSP...
- **动作元素**:用于调用JSP组件,如`<jsp:include>`, `<jsp:forward>`, `<jsp:param>`等。 **3. 注释** 在JSP中,可以使用HTML注释(`<!-- ... -->`)或Java注释(`//`, `/* ... */`)。Java注释在JSP被翻译成...
1. **JSP语法**:JSP页面包含HTML、CSS和嵌入的Java代码,通过`<% %>`、`<%= %>`和`<jsp:action>`等标签来执行Java代码或调用Java组件。 2. **JSP指令**:如`<%@ page>`用于设置页面属性,`<jsp:include>`用于包含...
- **指令和动作**:JSP指令(如page、include、taglib)和动作(如jsp:include、jsp:forward)用于控制页面行为和集成其他资源。 - **EL(Expression Language)**:EL简化了从JavaBean获取数据的过程,提供了简洁...
5. **动作元素(Actions)**:如`<jsp:include>`, `<jsp:forward>`, `<jsp:useBean>`等,它们用于控制页面流程或操作对象。 6. **EL(Expression Language)**:一种简洁的表达式语言,用于访问JavaBean或其他数据...