taglib和自定义标签的开发之tld文件

这表示是指令,主要用来提供整个JSP 网页相关的信息,并且用来设定JSP网页的相关属性,
例如:网页的编码方式、语法、信息等。
起始符号为: <%@
终止符号为: %>
目前有三种写到<%@ %>内的指令:page、include 和taglib,每一种指令都有各自的属性。
page 指令是最复杂的JSP指令,它的主要功能为设定整个JSP 网页的属性和相关功能。
include 指令表示:在JSP 编译时插入一个包含文本或代码的文件,这个包含的过程是静态的,
而包含的文件可以是JSP 网页、HTML 网页、文本文件,或是一段Java 程序。
taglib 指令能够让用户自定义新的标签。
  

自定义标签的开发步骤:定义一个标签处理类;定义描述文件;根据描述文件处理标签

      定义描述文件的过程:在WEB-INF下创建一个tld文件,复制apache-tomcat-7.0.22\webapps\examples\WEB-INF\jsp2目录下的jsp2-example-taglib文件的头信息和一个<tag>标签内信息到这个事先创建好的tld文件中,并作出相应修改。

tld部分文件内容的解释:

[plain] view plain copy
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2.   
  3.    
  4.   
  5. <taglib xmlns="http://java.sun.com/xml/ns/j2ee"  
  6.   
  7.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  8.   
  9.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"  
  10.   
  11. version="2.0">   
  12.   
  13.    
  14.   
  15. <!—-此标签库的一个简短描述-->  
  16.   
  17. <description>there are custom tags of tag</description>  
  18.   
  19. <!—-此标签库的版本,由标签开发者自行决定(必须元素)-->  
  20.   
  21.     <tlib-version>1.0</tlib-version>  
  22.   
  23. <!—-定义一个简短的名称,对应jsp页面的prefix属性,主要是给一些工具使用(必须元素)-->  
  24.   
  25. <short-name>tag</short-name>  
  26.   
  27. <!—-定义此标签库的uri路径,对应jsp页面taglib标签的uri属性,用于唯一标识该数据库,便于页面的引用-->  
  28.   
  29.     <uri>http://cn.csdn.web.tag</uri>  
  30.   
  31.     <!—-此标签库中的一个标签处理器的声明-->  
  32.   
  33. <tag>  
  34.   
  35.     <!—-该标签处理器的一个简短描述-->  
  36.   
  37. <description>view ip of client</description>  
  38.   
  39.     <!—-该标签名称(必须元素)-->  
  40.   
  41. <name>ViewIP</name>  
  42.   
  43.     <!—-该标签处理类的全限定名(必须元素)-->  
  44.   
  45. <tag-class>cn.csdn.web.tag.ViewIP</tag-class>  
  46.   
  47. <!—-指明该标签主题类型)-->  
  48.   
  49.         <body-content>empty</body-content>  
  50.   
  51.     </tag>  
  52.   
  53. </taglib>  

tld文件中要注意的事项:
    必须建立在WEB-INF目录下

   <body-content></body-content>中指定标签体的格式有四种:

     empty:表示标签没有标签体

     scriptless:表示标签体可以包含EL表达式和JSP的动作元素,但不能包含脚本表达式

     JSP:表示标签体可以包含JSP代码

     tagdependent:表示标签体由标签本身去解析处理。若指定tagdependent,那么在标签体中所写的代码将作为纯文本原封不动地传给标签处理类,而不是将执行结果传给标签处理类

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java自定义标签是指在JSP页面中自定义标签,以便在JSP页面中使用自己开发标签,便于模块化和重用。下面我们通过一个实例来了解Java自定义标签的用法。 假设我们需要在JSP页面中显示一个表格,表格的数据是从后台数据库中读取的。为了避免在JSP页面中写大量的Java代码,我们可以使用Java自定义标签来实现。 首先,我们需要在项目中创建一个Java类,用于实现自定义标签的功能。该类需要继承TagSupport类,并且需要实现doStartTag()方法和doEndTag()方法。doStartTag()方法用于处理开始标签,doEndTag()方法用于处理结束标签。 下面是一个简单的实例,该实例实现了一个自定义标签,用于在JSP页面中显示一个表格: ``` public class TableTag extends TagSupport { private List<Object[]> data; // 表格数据 public void setData(List<Object[]> data) { this.data = data; } public int doStartTag() throws JspException { try { JspWriter out = pageContext.getOut(); out.print("<table>"); out.print("<tr><th>姓名</th><th>年龄</th></tr>"); for(Object[] row : data) { out.print("<tr>"); out.print("<td>" + row[0] + "</td>"); out.print("<td>" + row[1] + "</td>"); out.print("</tr>"); } out.print("</table>"); } catch (IOException e) { throw new JspException(e.getMessage()); } return SKIP_BODY; } public int doEndTag() throws JspException { return EVAL_PAGE; } } ``` 在上面的代码中,我们定义了一个TableTag类,该类继承自TagSupport类。我们还定义了一个data属性,用于存储表格数据。在doStartTag()方法中,我们使用JspWriter输出表格的HTML代码,并且将数据填充到表格中。在doEndTag()方法中,我们返回EVAL_PAGE,表示继续执行JSP页面的剩余部分。 接下来,我们需要在JSP页面中使用该自定义标签。为了使用该标签,我们需要在JSP页面中引入自定义标签: ``` <%@ taglib prefix="mytag" uri="/WEB-INF/taglib.tld" %> ``` 在上面的代码中,我们定义了一个mytag前缀,并且指定了自定义标签的URI。URI是一个唯一的标识符,用于识别自定义标签库。 下面是一个使用自定义标签JSP页面: ``` <mytag:table data="${data}" /> ``` 在上面的代码中,我们使用mytag前缀引入自定义标签,并且使用data属性传递数据。在后台Java代码中,我们需要将数据存储到request或session中,以便在JSP页面中使用。 以上就是Java自定义标签的实例分析,通过该实例,我们可以了解到Java自定义标签的用法以及如何在JSP页面中使用自定义标签

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值