当前位置: 首页 > news >正文

rapid-framework的使用

使用

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

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

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

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

maven引入:

<dependency>
      <groupId>com.googlecode.rapid-framework</groupId>
      <artifactId>rapid-core</artifactId>
      <version>4.0.5</version>
</dependency>


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

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

父页面:base.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="rapid" uri="http://www.rapid-framework.org.cn/rapid" %>
<body>
    <rapid:block name="content">
        这里是内容
    </rapid:block>
</body>

<rapid:block name="content">定义叫做content的一块,该部分可以让子页面重写。
子页面:child.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="rapid" uri="http://www.rapid-framework.org.cn/rapid" %>
<rapid:override name="content">
    这里是重写内容
</rapid:override>
<%@ include file="base.jsp"%>

<%@ include file="base.jsp"%>引入父页面


<rapid:override name="content">重写父页面中叫做content的部分。
访问子页面,父页面<rapid:block name="content">内部的元素不会显示,代替的是子页面重写的内容。

 

详细

使用rapid-framework继承jsp页面实现frameSet,iframe功能_kcrlin的博客-CSDN博客
https://blog.csdn.net/kcrlin/article/details/78940437


 

相关文章:

  • idea mac 搜索项目所有文件的内容
  • SpringMVC新手教程
  • Windows XP系统 删除文件不显示确认对话框 的设置
  • Ubuntu18.04 安装nixnote2 使用Linux版本印象笔记
  • Windows XP系统 显示实时内存利用率百分比 的方法
  • Ubuntu18.04 安装深度终端 Deepin Terminal 的方法
  • [WeChall] Training: Regex (Training, Regex) 的答案
  • [WeChall] Training: Encodings I (Training, Encoding)
  • VScode 控制台上提示 无法在只读编辑器中输入 的解决
  • VMware虚拟机中 启动Windows XP系统黑屏 的解决
  • C语言 pow函数 undefined reference to `pow‘ 已解决
  • AttributeError: module ‘urllib‘ has no attribute ‘parse‘
  • PHP echo ‘\n‘ 无效 无法不能换行的 一个简单解决方法
  • 解决 PHP7 undefined function mcrypt_module_open
  • C语言报错 Floating point exception 的原因和解决方法
  • [译]Python中的类属性与实例属性的区别
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • Angular Elements 及其运作原理
  • C# 免费离线人脸识别 2.0 Demo
  • ComponentOne 2017 V2版本正式发布
  • es6--symbol
  • git 常用命令
  • JavaScript 一些 DOM 的知识点
  • Javascript 原型链
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • TypeScript迭代器
  • 安装python包到指定虚拟环境
  • 程序员最讨厌的9句话,你可有补充?
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 判断客户端类型,Android,iOS,PC
  • 微服务核心架构梳理
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • ​低代码平台的核心价值与优势
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • # windows 运行框输入mrt提示错误:Windows 找不到文件‘mrt‘。请确定文件名是否正确后,再试一次
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (175)FPGA门控时钟技术
  • (39)STM32——FLASH闪存
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (定时器/计数器)中断系统(详解与使用)
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二)pulsar安装在独立的docker中,python测试
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (转)http协议
  • **PHP二维数组遍历时同时赋值
  • *2 echo、printf、mkdir命令的应用
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET gRPC 和RESTful简单对比
  • .net 发送邮件