jsp 模板继承--rapid (附下载链接)

本文介绍了在JSP开发中如何利用Rapid框架实现模板继承,通过抽离重复页面结构,简化开发和维护。详细讲解了Rapid的原理、使用方法以及示例代码,帮助理解并应用该技术。
摘要由CSDN通过智能技术生成


rapid下载地址:http://www.java2s.com/Code/Jar/r/Downloadrapidcore40jar.htm



    1.为啥要使用

在开发jsp页面时,有很多网页使用的部分页面结构相同,这些相同的页面结构不仅添加时每个页面都要添加,而且如果要修改这些相同的地方都要修改,给开发及维护带来了工作量。

通过面向对象的问题思考问题:如果相同的部分抽离出来,使用继承的关系,基本的有父类定义,子类可以重写父类的变化的内容。父类可以有多个子类,子类只有一个父类,子类可以有很多子类,这样多层次的继承,可以解决以上问题。

对于页面也是一样,如果把相同的部分页面结构抽离成一个父页面,使用到这个页面的子页面就可以继承这个父页面,可以覆盖自己与主页面不同的页面内容,也可以自己定义让子页面的子页面覆写。添加时 只要引入父页面并修改针对自己的内容就行不再关心相同的页面结构。在要修改相同页面结构时只要修改父页面内容,其下面引用的子孙页面都会得到相应的更新。

2.寻找答案

下面介绍一下用的到这种技术:rapid中的一种功能 原理和上面说的差不多 

3.使用rapid

 我主要用在了jsp页面中,所以只介绍下在jsp中的使用 所需要引入的jar 包:rapid-core-4.0.jar

因为这个功能主要在jsp页面中使用的,所以使用的标签库方式来实现的,因此先在jsp中引用标签库

<%@taglib uri="http://www.rapid-framework.org.cn/rapid" prefix="rapid" %>

主要页面:base.jsp child.jsp grandChildA.jsp grandChildB.jsp

先来看base.jsp即父页面 ,页面中使用了rapid:block定义了四个可以让子页面重写的内容块 head top content footer

[html]  view plain   copy
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <%@taglib uri="http://www.rapid-framework.org.cn/rapid" prefix="rapid" %>  
  4. <%@taglib uri="http://java.sun.com/jstl/core" prefix="c" %>  
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  6. <html>  
  7. <head>  
  8.     <rapid:block name="head">  
  9.     <title>base head</title>  
  10.     </rapid:block>  
  11. </head>  
  12. <body>  
  13.     <rapid:block name="top">  
  14.             base top  
  15.     </rapid:block>  
  16.     <rapid:block name="content">  
  17.             base content  
  18.     </rapid:block>  
  19.     <rapid:block name="footer">  
  20.             base footer  
  21.     </rapid:block>  
  22. </body>  
  23. </html>  
base.jsp生成后的页面:

[html]  view plain   copy
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3. <head>  
  4.     <title>base head</title>  
  5. </head>  
  6. <body>  
  7.     base top  
  8.         base content  
  9.     base footer  
  10. </body>  
  11. </html>  
下面是child.jsp这里面使用include引用了base.jsp,这样代表了直接使用了base.jsp页面,又使用rapid:override重写了header和content,并在content创建了一个mychild内容块

[html]  view plain   copy
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <%@taglib uri="http://www.rapid-framework.org.cn/rapid" prefix="rapid" %>  
  4.     <rapid:override name="head">  
  5.         <title>child head</title>     
  6.     </rapid:override>  
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值