1、service层--标签处理类:
1 import javax.servlet.jsp.JspException;
2 import javax.servlet.jsp.tagext.BodyTagSupport;
3
4 /**
5 * Created by Administrator on 2018-4-28.
6 */
7 public class PrivilegeService extends BodyTagSupport {
8
9 //页面编码
10 private String menu;
11 //页面操作
12 private String sn;
13
14 public PrivilegeService() {
15 }
16
17 public int doStartTag() throws JspException {
18 try {
19 if("check".equals(this.menu)&& "admin".equals(this.sn)) {
20 return 1;
21 }
22 } catch (Exception var3) {
23 }
24 return 0;
25 }
26
27 public int doEndTag() throws JspException {
28 return 6;
29 }
30
31 public String getMenu() {
32 return menu;
33 }
34
35 public void setMenu(String menu) {
36 this.menu = menu;
37 }
38
39 public String getSn() {
40 return sn;
41 }
42
43 public void setSn(String sn) {
44 this.sn = sn;
45 }
46 }
2、标签描述文件: 将下面的内容加入tld文件中。以增加web应用对上面的标签类的支持 privilege.tld --书写格式
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
4
5 <taglib>
6 <tlibversion>1.0</tlibversion>
7 <jspversion>2.0</jspversion>
8 <shortname>通用标签库</shortname>
9 <info>提供通用组件的标签库</info>
10
11 <!-- 细粒度权限检查标签 -->
12 <tag>
13 <name>privilege</name>
14 <tagclass>test.service.PrivilegeService</tagclass>
15 <bodycontent>JSP</bodycontent>
16
17 <attribute>
18 <name>menu</name>
19 <required>true</required>
20 <rtexprvalue>true</rtexprvalue>
21 </attribute>
22
23 <attribute>
24 <name>sn</name>
25 <required>true</required>
26 <rtexprvalue>true</rtexprvalue>
27 </attribute>
28 </tag>
29 </taglib>
3、jsp层
3.1、jsp层格--引入
<%@ taglib prefix='demo' uri='/WEB-INF/tld/privilege.tld' %>
3.2、jsp层格--标签书写
<demo:privilege menu="check" sn="admin">
<button type="button">删除</button>
</demo:privilege>
完成以前文件的书写,在访问对应的JSP时,自定义标签就会起作用。