一、tld说明

tld,是taglib description 的缩写,其自定义标签一般用于jsp页面,tld其作用一般是在web项目中结

jstl、c标签等用于有效性判断、权限判断等方面,对前端的一些页面标签起到约束、限制的作用。

很多人只知道有这类型的标签,但不知道它有什么作用以及怎么去使用,所以,学会使用tld自定义标签对

项目会有很大的帮助,下面我会以一个自写的超级简单的demo(demo在文章最后会给出链接,有需要的程序员可

以下载来借鉴)来详细说明如何去使用tld,进行自定义标签,做有效性的判断。

   二、案例说明

1. 基础架构图:

2. tld自定义标签方法,需要以下几个步骤:

(1).在WEB-INF下新建一个tld文件,然后在tld文件写入以下代码:

[html] view plaincopy
  1. <span style="font-family:'KaiTi_GB2312';font-size:14px;"><?xml version="1.0" encoding="UTF-8"?>
  2. <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
  4. version="2.0">
  5. <tlib-version>1.0</tlib-version>
  6. <short-name>isnull</short-name><!-- 定义标签使用的短名称 -->
  7. <!-- 自定义标签的形参都是域里面传递的参数值;自定义标签基本使用在jsp页面上 -->
  8. <function>
  9. <description>判断传递内容是否为空</description><!-- 对该标签的说明 -->
  10. <name>hasvalue</name><!-- 定义标签名,放在短标签之后 -->
  11. <function-class>util.Tld_util</function-class><!-- 标签处理域值的类路径  -->
  12. <function-signature>boolean isnull(java.lang.String)</function-signature><!-- 标签处理域值的具体的类方法 -->
  13. <example>${isnull:hasvalue(obj1)}</example><!-- 自定义标签的使用示范 ,域参数会自动传递到具体的方法里面-->
  14. </function>
  15. </taglib></span>

每一个定义的参数我都已经附有说明,基本都是可以自行修改的,而自定义标签的处理域值的类路径和方法

需要和对应的项目的路径和方法相一致,这里使用的是本demo的类路径和方法;

(2).在Testtld.java类下,获取index.jsp页面提交的值,同时将该值放进域里面:

index.jsp:

[html] view plaincopy
  1. <span style="font-family:'KaiTi_GB2312';font-size:14px;"><form action="testtld" method="post">
  2. <input type="text" name="testtld" value="123">
  3. <input type="submit" value="提交">
  4. </form></span>

Testtld.java:

[html] view plaincopy
  1. <span style="font-family:'KaiTi_GB2312';font-size:14px;">String getvalue=request.getParameter("testtld");
  2. request.getSession().setAttribute("testtld", getvalue);//放进session域里面
  3. response.sendRedirect(request.getContextPath()+"/test.jsp");</span>

(3).在test.jsp页面引用自定义标签,这里判断的是tld的值是否为3,而使用不同的html标签:

[html] view plaincopy
  1. <span style="font-family:'KaiTi_GB2312';font-size:14px;"><c:choose>
  2. <c:when test="${isnull:hasvalue(testtld)}">
  3. <p>tld的值为123</p>
  4. </c:when>
  5. <c:otherwise>
  6. <p>tld的值不是123</p>
  7. </c:otherwise>
  8. </c:choose>
  9. <p>获取域值:${testtld}</p></span>

(4).定义处理域参数的类以及方法,Tld_util.java用于对域值的判断,由于在tld文件里已经指定了该类方法,

所以在jsp页面引用的时候会自动执行此方法进行对域值的判断:

[html] view plaincopy
  1. <span style="font-family:'KaiTi_GB2312';font-size:14px;">public class Tld_util {
  2. public static boolean isnull(String testtld){
  3. String value = "123";
  4. System.out.println("获取到的域里面的值:"+testtld);
  5. if(testtld!=null && testtld.equals(value)){
  6. return true;
  7. }
  8. return false;
  9. }
  10. }</span>

    三、结语

1. tld自定义标签在很多的项目中都能被有效地用于前端的全局的权限或者有效性等的判断,极大加快了

项目的开发进度,相信很多程序员都感同身受,因为只需要稍微修改一下处理域值的方法就能很好地控制html

或js标签的使用;

2. tld的使用方法并不是很难,如果博客看得不是还不是很明白,可以自行去下载本博客提供的这个小demo,

非常简单的架构,自行去尝试多几次,同时看看demo中的提供的注释,然后很快就能够上手,然后就可以自己去

测试自定义的标签;

3. 附上demo的链接,有需要的可自行下载:http://download.csdn.net/detail/alan_liuyue/9832456;

tld自定义标签之基础入门篇相关推荐

  1. 经典再现,看到就是赚到。尚硅谷雷神 - SpringBoot 2.x 学习笔记 - 基础入门篇

    SpringBoot 2.x 时代 – 基础入门篇 视频学习地址:https://www.bilibili.com/video/BV1Et411Y7tQ?p=112&spm_id_from=p ...

  2. sqlalchemy mysql教程_SQLAlchemy 教程 —— 基础入门篇

    SQLAlchemy 教程 -- 基础入门篇 一.课程简介 1.1 实验内容 本课程带领大家使用 SQLAlchemy 连接 MySQL 数据库,创建一个博客应用所需要的数据表,并介绍了使用 SQLA ...

  3. EGE基础入门篇(六):基本图形

    EGE专栏:EGE专栏 上一篇:EGE基础入门篇(五):窗口简单操作 下一篇:EGE基础入门篇(七):组合图形 一.EGE提供的基本图形 EGE绘制图形相关库函数文档 https://xege.org ...

  4. XSS注入基础入门篇

    XSS注入基础入门篇 1.XSS基础概念 2. XSS的分类以及示例 2.1 反射型XSS 2.1.1 示例1:dvwa low 级别的反射型XSS 2.1.2 攻击流程 2.2 DOM型XSS 2. ...

  5. EGE基础入门篇(二):开始使用EGE

    EGE专栏:EGE专栏 上一篇:EGE基础入门篇(一):绘图基础知识 下一篇:EGE基础入门篇(三):开场动画 EGE基础入门篇(二) 文章最后修改时间:2021年6月23日19:30:47 文章目录 ...

  6. 《Ansible权威指南 》一 第一篇 Part 1 基础入门篇

    本节书摘来自华章出版社<Ansible权威指南 >一书中的第1章,第1.1节,李松涛 魏 巍 甘 捷 著更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第一篇 ...

  7. linux入门_Linux超详细0基础入门篇(一)

    首先要感谢大康老师对我在Linux操作系统上的教导. 今天来讲一下用途广泛的Linux的基础入门教程 仅仅是做入门使用,如果想更加深入的学习那就需要自己做探索了. 本次例子使用的是kali linux ...

  8. 云小课|DGC数据开发之基础入门篇

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:欢迎来到DGC数据 ...

  9. FPGA基础入门篇(四) 边沿检测电路

    FPGA基础入门篇(四)--边沿检测电路 一.边沿检测 边沿检测,就是检测输入信号,或者FPGA内部逻辑信号的跳变,即上升沿或者下降沿的检测.在检测到所需要的边沿后产生一个高电平的脉冲.这在FPGA电 ...

最新文章

  1. Android 自定义viewpager 三张图片在同一屏幕轮播的效果
  2. 电子商务型网站该如何选择虚拟主机
  3. 三维ICP-SVD配准
  4. WITH RECOMPILE和OPTION(RECOMPILE)区别
  5. 成功的人都很会控制自己的情绪
  6. 《软件测试》实验一:测试入门
  7. 量化研究: Julia还是Matlab?
  8. vue中pdf预览组件_基于vue的pdf预览组件
  9. STM8单片机STVD环境新建工程笔记
  10. Flask 框架的网站实现
  11. linux ssh keygen r,SSH的ssh-keygen命令基本用法详解
  12. ABC164 E - Two Currencies(二维最短路)
  13. keepalived实现高可用nginx反向代理(Web集群)
  14. ubuntu 安装浏览器flash插件
  15. 百度地图和51地图API应用开发
  16. 【100个 Unity实用技能】 | Unity 在代码中 动态改变RectTransform位置及宽高 的方法整理
  17. 《Kali Linux高级渗透测试原书第2版》网络渗透测试技术书 无线网络渗透测试详解 黑客攻击与防范实战从入门到精通书
  18. photoshop从入门到精通全套视频
  19. Linux 挂载4T硬盘到根目录
  20. Android小项目--Suzy计算器

热门文章

  1. 如何更新linux系统时间
  2. 【转】EntityFramework之领域驱动设计实践(三)
  3. Python爬取唐人街探案3豆瓣短评并生成词云
  4. ModuleNotFoundError: No module named ‘matplotlib‘ 解决办法
  5. 基于Python-turtle库绘图(汇总)
  6. 解决no module cv2
  7. Android Studio Cmake C++ JNI demo
  8. Ubuntu14.04 安装pip
  9. 定制clojure的REPL
  10. python一款神器:ptpython 安装