1、自定义ShowTag类继承BodyTagSupport类,重写方法
package com.dgw.utils;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;
@SuppressWarnings("serial")
public class ShowTag extends BodyTagSupport{
private Boolean flag;
public Boolean getFlag() {
return flag;
}
public void setFlag(Boolean flag) {
this.flag = flag;
}
@Override
public int doEndTag() throws JspException{
//获取标签体内容对象
BodyContent bc = this.getBodyContent();
//获取标签内容
String content = bc.getString();
//在将转化之后的内容输出到浏览器中
if(flag){
try {
this.pageContext.getOut().write(content);
} catch (IOException e) {
e.printStackTrace();
}
}
return BodyTagSupport.EVAL_BODY_INCLUDE;
}
@Override
public int doStartTag() throws JspException{
return BodyTagSupport.EVAL_BODY_BUFFERED;
}
}
2、编写对应的tld文件用来注册标签
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">
<description>自定义标签</description>
<display-name>自定义标签</display-name>
<tlib-version>1.1</tlib-version>
<!-- 你的标签库的简称 -->
<short-name>love</short-name>
<uri>http://java.sun.com/jsp/jstl/core</uri>
<tag>
<!-- 你定义的标签的名称 -->
<name>show</name>
<!-- 对应的标签处理程序:包名+类名 -->
<tag-class>com.dgw.utils.ShowTag</tag-class>
<!-- 标签体内容的格式 -->
<body-content>JSP</body-content>
<!-- 标签用途说明 -->
<description>页面元素权限控制</description>
<!-- 标签属性 -->
<attribute>
<name>flag</name>
<!-- 属性是否必须 -->
<required>false</required>
<!-- 是否能够利用el表达式 -->
<rtexprvalue>true</rtexprvalue>
<description>控制权限过滤的标志</description>
</attribute>
</tag>
</taglib>
3、在对应的jsp页面引入
<%@ taglib uri="/WEB-INF/tld/love.tld" prefix="love" %>
4、在页面中使用
<love:show flag="false">
<span class="l"><a href="javascript:;" id="studentAddBin" class="btn btn-primary radius"><i class="Hui-iconfont"></i> 添加课程</a></span>
</love:show>