通过repid和include,实现javaweb的JSP文件继承(动态include)功能。
引言
有用过Djangog框架的小伙伴应该都使用过extends(继承)功能:
新建一个base.html,搭建起每个页面的框架:
每个页面都一样的(比如导航栏)部分则只需要在base.html文件中进行书写,其他页面因为extends了base.html,所以不需要再写一次。至于每个页面都不一样的部分,base在最开始的时候就通过block将其分为不同的块,比如head block,content block……其他继承于base的页面文件则只需要修改这些block的内容,就能实现所有页面的动态继承了。
这样,既避免了很多完全一样的代码的书写,也能避免一些框架一样,但具体内容不同的代码的书写。
类似的,JAVAWEB也能实现Django的extends功能,不过需要借助一些jar包。
实现步骤
1. 配置jar包
需要以下箭头所指的两个包,具体下载地址搜jar包的名字就有很多。
将以上两个jar包加入工程的lib文件夹中即可。
2. 编写base.jsp
```
<%@ taglib uri="http://www.rapid-framework.org.cn/rapid" prefix="rapid" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<html>
<rapid:block name="head">base_head</rapid:block>
<!-- 新建一个名为head的block -->
<body>
Hello!
<rapid:block name="content">base_content</rapid:block>
</body>
</html>
```
3. 编写index.jsp
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.rapid-framework.org.cn/rapid" prefix="rapid" %>
<rapid:override name="head">
<title>主页</title>
</rapid:override>
<rapid:override name="content">
<div class="container">
<ul class="row">
<h2 class="text-center">Here is the index.</h2><br/>
</ul>
</div>
</rapid:override>
<%@ include file="base.jsp" %>
```
4. 访问index页面
以上,实现了JSP的继承(动态include)功能。