`
jayung
  • 浏览: 59987 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

jsp页面代码复用组件工具:easylayout

阅读更多

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

 

0
0
分享到:
评论

相关推荐

    jsp内置对象及jsp复用

    1. **JSP指令**:比如`&lt;%@ include file="...jsp" %&gt;`, 这个指令可以将指定的JSP文件内容插入到当前页面中,实现代码复用。另一个是`&lt;jsp:include page="...jsp"&gt;`, 它不仅包含静态内容,还可以动态地插入内容,因为...

    JSP注册页面的代码

    JSP注册页面的代码详解 JSP注册页面的代码是JSP编程语言中的一种经典实现方式,旨在帮助新学JSP的同学们掌握基本的JSP编程技术。本文将对JSP注册页面的代码进行详细解析,帮助读者更好地理解JSP编程语言。 标题:...

    jsp页面数据分页通用组件

    `jsp页面数据分页通用组件`就是这样一个工具,它为开发者提供了便捷的方式来实现这一功能。这个组件适用于所有基于Struts或者纯JSP+JavaBean的项目,具有高度的可复用性和可扩展性。 1. **分页原理** 数据分页主要...

    jsp登录页面设计源代码

    例如,在上面的代码中,我们可以看到jsp页面的基本结构,包括指令、脚本块、&lt;jsp:forward&gt;标签等。jsp页面用于处理用户输入的信息,并根据验证结果跳转到不同的页面。 5. 认证机制: 在jsp登录页面设计中,我们使用...

    炫酷的登录jsp页面完整代码

    【标题解析】:“炫酷的登录jsp页面完整代码”指的是一个使用JSP技术构建的具有视觉吸引力的登录界面。这个项目可能包含了一整套的前端和后端代码,旨在为用户提供一个美观且功能完整的登录体验。 【描述详解】:...

    JSP页面嵌套Word组件插件

    JSP页面嵌套word组件,实现Office软件中所有功能的调用

    jsp暴源代码小工具(简单)

    这个"jsp暴源代码小工具"看起来是一个简单实用的程序,用于查看JSP源代码,对于开发者调试和学习JSP非常有帮助。 **源代码暴露问题**: 在Web开发中,源代码暴露是一个安全问题。如果JSP源代码被不法分子获取,他们...

    jsp页面分页代码

    这样,你可以在多个页面中复用分页组件,同时保持代码整洁。 总的来说,JSP分页是一项基本但重要的技能,理解和掌握它可以提高你的Web开发效率。通过合理的前后端配合,我们可以实现高效、灵活的分页功能,为用户...

    Java Web上传组件使用:JSPUpload

    在实例代码中,`JspsmartUpload`可能是该组件的实现类或者核心库文件,它包含了实际处理文件上传的逻辑。你可以通过阅读和分析这个文件,了解其内部工作原理,并根据自己的需求进行调整。 博主提供的链接(&lt;https:/...

    简单的JSP页面布局

    这种方法可以实现页面的模块化,提高代码复用性。例如,我们可以将头部和底部信息分别保存为单独的文件,然后在每个页面中通过`&lt;jsp:include&gt;`引入,这样修改一处即可更新所有页面的相应部分。 4. **CSS布局**: CSS...

    JSP调用Flex4组件演示代码

    【JSP调用Flex4组件演示代码】是一个典型的Web应用程序开发示例,它结合了Java服务器页面(JSP)和Adobe Flex4技术,展示了这两者之间的交互。在现代Web开发中,这种混合技术允许开发者利用Flex4的强大富互联网应用...

    JSP 特效代码集

    这个“JSP特效代码集”可能包含了各种JSP页面中的特效实现,如动态数据展示、动画效果、交互控件等,对于学习和复用JSP特效代码非常有帮助。通过深入理解这些概念和实践,开发者可以构建更加高效、美观且功能丰富的...

    Jsp技术概述和jsp页面中的JavaBean组件参照.pdf

    JavaBean组件可以通过jsp:useBean元素来访问特定的JavaBean组件。 在JSP页面中,JavaBean组件可以提供了以下几种功能: * 数据存储:JavaBean组件可以存储数据,并且可以通过jsp:useBean元素来访问这些数据。 * ...

    JSP页面中标签的使用

    动作标签以`&lt;jsp:`开头,如`&lt;jsp:include&gt;`用于包含其他页面,`&lt;jsp:useBean&gt;`用于实例化Java对象。声明式标签则以`开头,如`&lt;%@ taglib&gt;`用于引入标签库,`&lt;%@ page&gt;`用于设置页面属性。 四、EL表达式和JSTL的协同...

    jsp中使用vuejs+element-ui+vuejs第三方组件

    JSP是一种服务器端的动态网页技术,它可以嵌入Java代码,用于处理动态内容。而Vue.js则是一款轻量级的前端MVVM框架,它通过声明式渲染数据到视图,实现了数据和视图的双向绑定,简化了前端开发。 **集成Vue.js到JSP...

    jsp简单语法,servlet,JSP概述,JSP页面构成,注释,指令,脚本元素,动作元素,错误处理

    - **动作元素**:用于调用JSP组件,如`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:param&gt;`等。 **3. 注释** 在JSP中,可以使用HTML注释(`&lt;!-- ... --&gt;`)或Java注释(`//`, `/* ... */`)。Java注释在JSP被翻译成...

    企业门户网站JSP源代码

    1. **JSP语法**:JSP页面包含HTML、CSS和嵌入的Java代码,通过`&lt;% %&gt;`、`&lt;%= %&gt;`和`&lt;jsp:action&gt;`等标签来执行Java代码或调用Java组件。 2. **JSP指令**:如`&lt;%@ page&gt;`用于设置页面属性,`&lt;jsp:include&gt;`用于包含...

    java+jsp+JScript技术组件源码整理

    - **指令和动作**:JSP指令(如page、include、taglib)和动作(如jsp:include、jsp:forward)用于控制页面行为和集成其他资源。 - **EL(Expression Language)**:EL简化了从JavaBean获取数据的过程,提供了简洁...

    jsp页面

    5. **动作元素(Actions)**:如`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:useBean&gt;`等,它们用于控制页面流程或操作对象。 6. **EL(Expression Language)**:一种简洁的表达式语言,用于访问JavaBean或其他数据...

Global site tag (gtag.js) - Google Analytics