zoukankan      html  css  js  c++  java
  • write jsp tag

    编写一个JSP Tag涉及三个步骤:
    (1)编写JSP
    (2)编写JSP Tag的java程序
    (3)编写JSP Tag库的描述文件tld(实际是一个XML文件)
    这三个步骤之间没有顺序约束,下面是一个简单的例子:

    1 编写HelloTag.jsp

    1. <%@page contentType="text/html"%>   
    2. <html>   
    3. <head><title>Hello Tags Page</title></head>   
    4. <body>   
    5. <%@ taglib uri="/WEB-INF/classes/tags/helloTag.tld" prefix="hello" %> 
    6. <hello:helloTag />   
    7. </body>   
    8. </html> 

    2 编写JSP Tag

    HelloTag.java

    1. package tags;   
    2. //注意:必须放在一个包中   
    3. import java.io.*;   
    4. import javax.servlet.jsp.*;   
    5. import javax.servlet.jsp.tagext.*;   
    6. public class HelloTag extends TagSupport {   
    7. public int doStartTag() {   
    8. try {   
    9. //使用JspWriter获得JSP的输出对象   
    10. JspWriter jspWriterOutput = pageContext.getOut(); 
    11. jspWriterOutput.print("Hello Tag!");   
    12. }   
    13. catch (IOException ioEx) {   
    14. System .out.println("IOException in HelloTag " + ioEx);   
    15. }   
    16. return (SKIP_BODY);   
    17. }   

    3 编写helloTag.tld

    这是Tag库的描述部分:

    1. <?xml version="1.0" encoding="UTF-8" ?> 
    2. <!DOCTYPE taglib  
    3. PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"  
    4. "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> 
    5. <taglib> 
    6. <tlib-version>1.0</tlib-version> 
    7. <jsp-version>1.2</jsp-version> 
    8. <shorttag&#65279; -name>helloTag</short -name> 
    9. <uri>/WEB-INFtagshelloTag</uri> 
    10. <display-name>helloTag</display-name> 
    11. <small-icon></small-icon> 
    12. <large-icon></large-icon> 
    13. <description>simple hello tags tag  
    14. </description> 
    15. <tag> 
    16. <name>helloTag</name> 
    17. <tag-class >tags.HelloTag</tag-class > 
    18. <body-content>empty</body-content> 
    19. <small-icon></small-icon> 
    20. <large-icon></large-icon> 
    21. <description></description> 
    22. <example></example> 
    23. </tag> 
    24. </taglib>  

    4 注意:

    通常手工编写XML文件,但是Sun的教程建议使用IDE工具编写自定义tag,比如NetBeans
    一般,直接把tld文件放到WEB-INF目录中。

  • 相关阅读:
    AJAX封装(IE)
    CSS3线性渐变
    [Kafka] [All about it]
    [Java][内存模型]
    [python] [Jupyter Notebook]
    [Paper][Link note]
    [TODO]
    [Java] [Singleton] [DCL][happens-before]
    [Java concurrent][Collections]
    Unity AssetBundles and Resources指引 (四) AssetBundle使用模式
  • 原文地址:https://www.cnblogs.com/greencolor/p/2333739.html
Copyright © 2011-2022 走看看