第一步:创建标签文件 menu.tag,而且必须放在/META-INF/tags文件夹中
<%@ tag body-content="tagdependent" %>
<%@ attribute name="menutext" rtexprvalue="true"%>
<h1>This is my tag file</h1>
<jsp:doBody/>
创建之后,就可以在web项目的jsp中使用此标签文件了
<%@ taglib prefix="easy" tagdir="/WEB-INF/tags" %>
<easy:menu/>
第二步:将标签文件打包为jar文件,提供给其他人使用
使用java项目打包
新建一个java项目,项目结构如下图
现将tags文件夹从web项目中复制到java项目中
使用未打包在jar中的标签文件非常方便,因为它不需要标签库描述符文件(tld)。 但是当打包在jar中时,需要一个tld文件,但这个tld文件与常规tld不同,其不是将标签与处理程序相匹配,而是将标签文件的名称与其路径匹配,因此它使用新的<tag-file>元素而不是标准taglib tld的<tag>元素。
创建名称为menu.tld并放在META-INF目录中<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>tagfilelib</shortname>
<uri>example.com/tagfilelib</uri>
<tag-file>
<name>menu</name>
<path>/META-INF/tags/menu.tag</path>
</tag-file>
</taglib>
准备好这两个文件,就能进行将该工程导出成jar包了,右键点击工程,选择“Export…”,弹出窗口:
下一步
“.classpath”和”.project” 两个钩去掉,因为这两个选项的文件我们并不需要,然后选择下要保存该jar包的路径和名称,到这里为止,直接点击“finish”即可完成将自定义标签封装成jar包,在以后的web工程如果有需要用到只需要将该jar包导入,并在JSP页面中导入taglib指令即可使用该jar包中的自定义标签了
Jsp页面使用
<%@ taglib prefix="easy" uri="example.com/tagfilelib" %>
<html>
<head>
<title>Demonstration of Tag Files</title>
</head>
<body>
<h1> What is going down? </h1>
<easy:menu/>
</body>
</html>
参考:
Tag Files wrapped in a Jar