在jsp文件中,可以引用tag和tld文件。

1.对于tag文件,使用tagdir引用(这个直接是引用的后缀tag文件的jsp文件)
<%@ taglib prefix="ui" tagdir="/WEB-INF/tags" %>
其中的tags是个目录,里面有若干tag文件。
但使用<ti:XXXX>时,目录WEB-INF/tags下,必然有个XXXX.tag文件与之对应。

其实这里直接引tag文件就像include一个jsp文件,可以写java代码,可以写html标签,可以写js,用el标签直接对应属性名${属性名}


 
2.对于tld文件(这个可以自定义两种,不过都是通过Class类扩展的,可以定义的两种为function和tag,function是el表达式${}扩展的,tag是跟上面一样<xxx:xxx>这种格式)

2.1基于tld的自定义fucntion 参考 jsp tld的function 自定义方法扩展

2.2基于tld自定义的tag java代码端参考 jsp tld 的tag 自定义标签扩展

在jsp中可以引用TLD文件,引用的查找方式:
1.直接指向一个文件,当然就不用照抄了
2.直接指向一串url(其实就是找jar下面的web-inf)
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
但是这个http://java.sun.com/jsp/jstl/core对应着什么呢?
jsp会在当前目录的\WEB-INF下找所有tld文件
当找到某一个.tld文件时,发现tld中的

  1. <description>JSTL 1.1 core library</description>
  2. <display-name>JSTL core</display-name>
  3. <tlib-version>1.1</tlib-version>
  4. <short-name>c</short-name>
  5. <uri>http://java.sun.com/jsp/jstl/core</uri>


其中的uri与这个引入URL对应,则引用的就是这个tld。
但使用<html:YYYYY>时,这个TLD文件中必然有个YYYY项与之对应。



以上在打包jar的META-INF木木的查找方式是一样的

 
还有一种更保险的方法是,在WEB-INF/web.xml中加上
<taglib>
    <taglib-uri>
http://jakarta.apache.org/tomcat/examples-taglib
    </taglib-uri>
    <taglib-location>
       /WEB-INF/jsp/example-taglib.tld
    </taglib-location>
</taglib>
这样表示http://jakarta.apache.org/tomcat/examples-taglib对应着/WEB-INF/jsp/example-taglib.tld
 
ps:tag和tld文件最好放在(WAR包)WEB-INF或者(jar包)META-INF根目录或子目录下,最好以tags或者tlds文件名命名,至于不放在以上目录没测试过
关于在打包jar的时候怎么放进META-INF目录而且不被自动build的覆盖
1.解压jar手动丢进去
2.maven配置待续


tag文件作用一般是一段小代码,类似include文件的作用。(直接的一个tag文件,直接当成引一个jsp就可以了,只是开头多了一些属性定义和动态获取属性的特性 )
tld文件(自定义function和自定义tag java端)作用比较复杂,可以实现很多高级的作用。

jsp中 自定义 tag的几种方式的更多相关文章

  1. jsp中头的导入两种方式区别

    1.<jsp:include page="top.jsp">先将top.jsp中的java脚本和jsp指令执行完毕以后再讲top.jsp页面加入面中 2.<%@ ...

  2. JSP中的TAG

    http://blog.csdn.net/hongweigg/article/details/12006849 JSP标签有两种实现方法,一种是使用tag 文件,一种是使用tld文件. 1.使用tag ...

  3. JavaScript学习12 JS中定义对象的几种方式

    JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...

  4. android中解析文件的三种方式

    android中解析文件的三种方式     好久没有动手写点东西了,最近在研究android的相关技术,现在就android中解析文件的三种方式做以下总结.其主要有:SAX(Simple API fo ...

  5. jQuery中开发插件的两种方式

    jQuery中开发插件的两种方式(附Demo) 做web开发的基本上都会用到jQuery,jQuery插件开发两种方式:一种是类扩展的方式开发插件,jQuery添加新的全局函数(jQuery的全局函数 ...

  6. iOS 自定义layer的两种方式

    在iOS中,你能看得见摸得着的东西基本都是UIView,比如一个按钮,一个标签,一个文本输入框,这些都是UIView: 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层 在创建UIVi ...

  7. Struts中的数据处理的三种方式

    Struts中的数据处理的三种方式: public class DataAction extends ActionSupport{ @Override public String execute() ...

  8. (六)javascriptJS中定义对象的几种方式(转)

    JavaScript学习12 JS中定义对象的几种方式 转自:  http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象 ...

  9. EntityFramework Core 2.0自定义标量函数两种方式

    前言 上一节我们讲完原始查询如何防止SQL注入问题同时并提供了几种方式.本节我们继续来讲讲EF Core 2.0中的新特性自定义标量函数. 自定义标量函数两种方式 在EF Core 2.0中我们可以将 ...

随机推荐

  1. jquery ajax 中不能给变量赋值的原因及解决办法

    我们在用JQuery的Ajax从后台提取数据后想把它赋值给全局变量,但是却怎么都赋不进,为什么呢? 原因其实很简单,我们用的Ajax是异步操作,也就是说在你赋值的时候数据还没提取出来,你当然赋不进去, ...

  2. python遍历目录的方法 walk listdir

    这篇文章里描述了这些情况: https://www.cnblogs.com/jiaxin359/p/7324077.html 不用递归的时候,用 listdir 需要递归的时候,用walk

  3. Firefox的缓存问题

    使用Firefox调试代码时,JS或CSS文件修改后,怎么刷新都不生效.原来是Firefox缓存的问题.但Firefox没有像IE一样有个每次读取最新的设置. 设置Firefox不缓存页面: 新建标签 ...

  4. 在Windows Server 2008 R2上安装Exchange 2013过程中遇到的一些问题

    笔者对Exchange经验非常有限, 但也正因为如此, 这里分享的东西对从没接触过Exchange的朋友会有更多的帮助吧, 至少希望如此.   1. Exchange 2013的安装需要.net fr ...

  5. 【架构】Nginx如何设置X-Request-ID请求头,记录请求时间:毫秒?

    Nginx is awesome, but it’s missing some common features. For instance, a common thing to add to acce ...

  6. 切换样式.toggleClass()

    切换样式.toggleClass() 在做某些效果的时候,可能会针对同一节点的某一个样式不断的切换,也就是addClass与removeClass的互斥切换,比如隔行换色效果 jQuery提供一个to ...

  7. 【原创】Android自定义适配器的使用方法

    比如说我们已经得到了数据,想在一个listview或者在其他的控件中显示的,并且我们显示想要自己设计样式来显示的话就要用到自定义适配器了,下面让我们结合代码讲一下具体的使用方法: 代码会有注释的哦: ...

  8. 聊聊iOS中网络编程长连接的那些事

    1.长连接在iOS开发中的应用 常见的短连接应用场景:一般的App的网络请求都是基于Http1.0进行的,使用的是NSURLConnection.NSURLSession或者是AFNetworking ...

  9. HTML5学习笔记简明版(5):input的type超级类型

    HTML5为input的type类型添加了多种枚举值,用来表达不同的意思.同事具有验证功能,假设格式不正确,浏览器将原始提供错误提示,堪称超级牛X啊,详细例如以下: Keyword Data type ...

  10. CSS 盒状模型简介

    框的构成以及相关 CSS 特性( property ) 结构 为了给文档树中的各个元素排版定位(布局),浏览器会根据渲染模型1为每个元素生成四个嵌套的矩形框, 分别称作 content box.pad ...