博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义标签
阅读量:5167 次
发布时间:2019-06-13

本文共 2766 字,大约阅读时间需要 9 分钟。

Step 1 :   写一个java类,实现SimpleTag接口或继承SimpleTagSupport抽象类

 

Step 2:    在java类中,override doTag()方法,再该方法中,实现标签的业务逻辑

 

Step 3:    在tld文件中描述标签。

 

Step 4:    在JSP页面中,使用taglib指令导入标签

 

java类:

1 package mytag; 2  3 import java.io.IOException; 4  5 import javax.servlet.jsp.*; 6 import javax.servlet.jsp.tagext.SimpleTagSupport; 7  8 public class HelloTag extends SimpleTagSupport{ 9 10     private String  info;11     private int num;12     13     public String getInfo() {14         return info;15     }16 17     public void setInfo(String info) {18         System.out.println("setinfo");19         this.info = info;20     }21 22     public int getNum() {23         return num;24     }25 26     public void setNum(int num) {27         System.out.println("setnum");28         this.num = num;29     }30 31     public HelloTag() {32         System.out.println("constructor");33     }34 35     @Override36     public void doTag() throws JspException, IOException {37         // TODO Auto-generated method stub38         JspContext jc = getJspContext();39         PageContext pc = (PageContext)jc;40         JspWriter out=pc.getOut();41         for(int i=0;i
");43 }44 }45 46 }

tld文件注意几点

<tag>

<name>helloUser</name>
<tag-class>mytag.HelloUser</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>username</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>

 

scriptless表示可以有标签体。

 rtexprvalue表示该自定义标签的某属性的值可以直接指定或者通过动态计算指定。

mytag.tld文件如下:

JSTL 1.1 core library
JSTL core
1.1
c1
http://www.caxa.com/mytag
sayHello
mytag.HelloTag
empty
info
true
false
num
true
false

jsp文件(也就是使用过程)如下:

<%@ page language="java" import="java.util.*,java.lang.*" pageEncoding="ISO-8859-1"%><%@ taglib prefix="fn1"            uri="http://www.caxa.com/fn1" %><%@  taglib prefix="c1"              uri="http://www.caxa.com/mytag" %>       <%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>              My JSP 'MyJsp.jsp' starting page        
<% request.setAttribute("str1","xvgfdgsdfgfdgg"); %> s1:${fn1:toUpperCase(str1)}
This is my JSP page.

 

转载于:https://www.cnblogs.com/hzzhero/p/5055403.html

你可能感兴趣的文章
.Net 之 RPC 框架之Hprose(远程调用对象)
查看>>
全球外贸客户资源网站总汇
查看>>
杂项-CORS:CORS(跨域资源共享)
查看>>
杨柳目-杨柳科:杨柳科
查看>>
Node.js:JXcore
查看>>
oracle数据投毒,Oracle Database Server TNS Listener远程数据投毒漏洞(CVE-2012-1675)的完美解决方法...
查看>>
oracle创建函数难点,oracle创建函数遇到的坑,
查看>>
PHP抽象函数的依赖注入,依赖注入_PHP编程_互联网开发技术网_传播最新的编程技术_php361.com...
查看>>
linux下创建nginx虚拟目录详解,配置Nginx服务器虚拟目录
查看>>
嵌入式linux内核gpio使用,嵌入式Linux下面查看gpio使用情况
查看>>
利用linux命令进行入侵检测分析总结,Linux之入侵痕迹清理总结
查看>>
linux 文件命名空间,Linux 命名空间
查看>>
Block的本质
查看>>
Pixel 3a 开箱及 Google Fi 服务评测视频
查看>>
用一个div模拟textarea的实现【前端每日一题-15】
查看>>
Python学习教程:爬虫分析了京东内衣销售记录,哪个size最多?
查看>>
有Excel、Tableau、PowerBI都能做数据分析,为什么还要用Python
查看>>
redis如何进行分库存储和选择模糊清除缓存
查看>>
spring security退出方法
查看>>
从获得字符串中获取数字
查看>>