tld自定义标签之基础入门篇

 一、tld说明

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

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

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

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

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


   二、案例说明

    1. 基础架构图:



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

扫描二维码关注公众号,回复: 1373370 查看本文章

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

[html] view plain copy
  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.       
  6.      <tlib-version>1.0</tlib-version>  
  7.      <short-name>isnull</short-name><!-- 定义标签使用的短名称 -->  
  8.        
  9.      <!-- 自定义标签的形参都是域里面传递的参数值;自定义标签基本使用在jsp页面上 -->  
  10.     <function>  
  11.        <description>判断传递内容是否为空</description><!-- 对该标签的说明 -->  
  12.        <name>hasvalue</name><!-- 定义标签名,放在短标签之后 -->  
  13.        <function-class>util.Tld_util</function-class><!-- 标签处理域值的类路径  -->  
  14.        <function-signature>boolean isnull(java.lang.String)</function-signature><!-- 标签处理域值的具体的类方法 -->  
  15.        <example>${isnull:hasvalue(obj1)}</example><!-- 自定义标签的使用示范 ,域参数会自动传递到具体的方法里面-->  
  16.     </function>  
  17.   
  18. </taglib></span>  
   每一个定义的参数我都已经附有说明,基本都是可以自行修改的,而自定义标签的处理域值的类路径和方法

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


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

 index.jsp:

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

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

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

或js标签的使用;

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

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

测试自定义的标签;

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



猜你喜欢

转载自blog.csdn.net/weixin_39816740/article/details/80539126