自定义标签打包后使用

在上一讲中,描述了如何使用简单标签开发自定义标签。既然开发了自定义的标签,如果要给别人去使用,我们就要像JSTL那样,将自己开发的标签打成jar包,如果别的工程要使用的话,直接将jar包导入到工程中就可以了。

首先,我们可以建一个java工程,在根目录下建立一个文件夹:META-INF,这个文件夹是用来存放我们写的tld文件的,src下建立自己的包,然后将自己编写的类文件放在src的包中。工程的结构如下:

下面给一个小Demo

首先,我们自己定义模拟JSTL的<c:if>标签

JyIfTag.java

package com.jjyy.tag;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
/**
 * 自定义if标签
 * @author JiangYu
 *
 */
public class JyIfTag extends SimpleTagSupport {
	private boolean test;
	@Override
	public void doTag() throws JspException, IOException {
		if(test){
			getJspBody().invoke(null);
		}else{
			
		}
	}
	public void setTest(boolean test) {
		this.test = test;
	}
	
}
然后,在写一个防盗链的标签

JyRefererTag.java

package com.jjyy.tag;

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;
/**
 * 自定义防盗链标签
 * @author JiangYu
 *
 */
public class JyRefererTag extends SimpleTagSupport {
	@Override
	public void doTag() throws JspException, IOException {
		PageContext pc = (PageContext) getJspContext();
		HttpServletRequest request = (HttpServletRequest) pc.getRequest();
		HttpServletResponse response = (HttpServletResponse) pc.getRequest();
		String referer = request.getHeader("Referer");
		if(referer==null||referer==""||referer.indexOf("http://localhost")<0){
			response.sendRedirect(request.getContextPath()+"/index.jsp");
			return ;
		}
	}
}
最后我们来编写tld文件:

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
 <span style="white-space:pre">	</span>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
<span style="white-space:pre">	</span>http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd">
 <tlib-version>1.0</tlib-version>
 <short-name>JY</short-name>
 <uri>http://www.jjyy.com</uri>
 <tag>
  <name>Referer</name>
  <tag-class>com.jjyy.tag.JyRefererTag</tag-class>
  <body-content>empty</body-content>
 </tag>
 <tag>
  <name>If</name>
  <tag-class>com.jjyy.tag.JyIfTag</tag-class>
  <body-content>scriptless</body-content>
  <attribute>
  	<name>test</name>
  	<required>true</required>
  	<rtexprvalue>true</rtexprvalue>
  	<type>boolean</type>
  </attribute>
 </tag>
</taglib>

到这里,开发标签的任务就结束了。下面我们就是要把自己开发的自定义标签打成jar包。

打好了jar包后,我们就可以试一下自己的标签了,新建一个web工程,将刚才打好的jar包导入到工程中:

最后新建一个jsp页面,使用我们自定义的标签:注意记得在jsp页面导入标签

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.jjyy.com" prefix="JY" %>
<!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>自定义标签打包后使用</title>
</head>
<body>
	<JY:If test="${1<2}">
		确实是这样!!!
	</JY:If>
	<JY:If test="${1>=2}">
		你确定吗?
	</JY:If>
</body>
</html>
启动tomcat,访问写好的页面,输出结果为:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值