zoukankan      html  css  js  c++  java
  • 自定义标签

    自定义标签一共有三步:

    1.定义一个标签处理类,以eclipse的web project为例,可以在java resources中创建此类,创建完成后将产生的class文件放在WEB—INF的classes目录下

    2.定义描述文件(.tld),在WEB—INF底下创建描述文件,可复制apache-tomcat-7.0.22webappsexamplesWEB-INFjsp2目录下的jsp2-example-taglib文件的头信息和一个<tag>标签内信息到这个事先创建好的tld文件中,并作出相应修改。

    3.根据描述文件处理标签

    现详细介绍tld文件格式:

    <?xml version="1.0" encoding="UTF-8" ?>
    <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
    version="2.0">
        <!--上面部分可从jsp2-example-taglib中复制过来-->
        <!--此标签库的一个简短描述-->
        <description>there are custom tags of tag</description>
        <!--此标签库的版本,由标签开发者自行决定(必须)-->
        <tlib-version>1.0</tlib-version>
        <!--jsp的版本-->
        <jsp-version>2.0</jsp-version>
        <!--定义一个简短的名称,主要是给一些工具使用(必须)-->
        <short-name>tag</short-name>
        <!--定义此标签库的uri路径,用于唯一标识该数据库,便于页面的引用-->
        <uri>http://cn.csdn.web.tag</uri>
        
        <!--此标签库中的其中一个标签处理器的声明,每个tag都是一个标签处理器-->
        <tag>
            <!--该标签处理器的一个简短描述-->
            <description>view ip of client</description>
            <!--该标签名称(必须)-->
            <name>ViewIP</name>
            <!--该标签处理类的全限定名(必须),即复制过来的class的路径-->
            <tag-class>cn.csdn.web.tag.ViewIP</tag-class>
            <!--指明该标签主题类型-->
            <body-content>empty</body-content>
            <!--标签属性-->
            <attribute>
                <name>attribute_name</name>
                <required>false</required>
                <type>java.util.Date</type>
                <fragment>false</fragment>
            </attribute>
        </tag>
        
    </taglib>

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

      以<ex:Hello>标签为例,看不同标签类型下的使用方法:

         empty:表示标签没有标签体,即标签内不能有任何内容,例:<ex:Hello/>

         scriptless:表示标签体可以包含EL表达式和JSP的动作元素,但不能包含脚本表达式,例: <ex:Hello> ${aa} </ex:Hello>

         JSP:表示标签体可以包含JSP代码,例: <ex:Hello><%= aaa%></ex:Hello>

      前三种的标签解析都是交给标签处理类

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

  • 相关阅读:
    SQL SERVER中如何用SQL语句给表的栏位加注释sp_addextendedpropert
    baidu搜索出现错误提示页面
    ASP.NET MVC V2 Preview 1 发布 期望VS有更好的表现
    业务逻辑层实现事务处理
    FCKEidtor自動統計輸入字符個數(IE)
    Asp.Net 关于Could not load file or assembly 'Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies.问题的解决方法。
    Jquery Tabs 在asp.net 中的应用
    IBM总架构师寇卫东:话说程序员的职业生涯
    我喜欢的15个WordPress插件<转>
    The SqlParameter is already contained by another SqlParameterCollection.
  • 原文地址:https://www.cnblogs.com/yanze/p/6552451.html
Copyright © 2011-2022 走看看