• JavaEE自定义标签:标签类的创建、tld配置文件的创建(位置、如何创建)、Web-XML配置、JSP应用


    1、标签
    类似于html标签的方式实现的java代码的封装
    第一:形成了开发标签的技术标准---自定义标签的技术标准
    第二:java标准标签库(sun之前自己开发的一系列的标签的集合)jstl,以及表达式语言EL。
     
    2、自定义标签
    (1)理解:
    可以允许用户自己根据自己的需要,去开发自己的标签的技术规范。
    通俗:在Jsp页面上,以简单的标签封装java代码的操作
    //在自定义标签类中,先调用setPageContext()实例化内置对象:
    JavaEE自定义标签:标签类的创建、tld配置文件的创建(位置、如何创建)、Web-XML配置、JSP应用
    //然后是doStartTag()方法,核心代码放在这个方法里面
    JavaEE自定义标签:标签类的创建、tld配置文件的创建(位置、如何创建)、Web-XML配置、JSP应用
     //定义变量,变量的Get、Set方法:
     private String UserName = "";
    JavaEE自定义标签:标签类的创建、tld配置文件的创建(位置、如何创建)、Web-XML配置、JSP应用
    //tld配置文件放置在WEB-INF目录下,主要的标记如下,主要的配置如下:
    //前面tlib-version版本号、Jsp-version JSP的版本号、short-name 命名空间必须有的
    //uri,注意是uri而不是url,url是访问的路径。
    //而uri为访问时候的别名,写在JSP页面上的标签的别名。
    //name为此标签类的别名,tag-class 为标签类的存放的物理路径 
    //body-content 为是否有标签体,如果是/子关闭标签设置为EMPTY
    //如果涉及到标签属性,可以设置attribute,其中name为属性的名称,而不是别名,required 属性是否必须设置,rtexprvalue 是否程序运行时候为属性赋值。
    JavaEE自定义标签:标签类的创建、tld配置文件的创建(位置、如何创建)、Web-XML配置、JSP应用
    //如果在tld文件中不设置uri,则在web-xml中必须对talib-uri进行设置。
    JavaEE自定义标签:标签类的创建、tld配置文件的创建(位置、如何创建)、Web-XML配置、JSP应用
    //在JSP页面中,用taglib指令导入自定义标签。
    JavaEE自定义标签:标签类的创建、tld配置文件的创建(位置、如何创建)、Web-XML配置、JSP应用
    //JSP页面上的使用,前面my为tld文件中为标签类定义的命名空间、hello为tld文件中指定标签类的别名:
    JavaEE自定义标签:标签类的创建、tld配置文件的创建(位置、如何创建)、Web-XML配置、JSP应用

    (2)技术组成
    A:标签处理类:实现所有信息显示功能的Java类
    B:标签配置文件(标签描述文件、库文件):是一个遵守xml规范的tld文件(扩展名为TLD)
    C:配置web.xml:告诉web应用,需要引用其他的标签信息
    D:jsp页面上,调用标签
     
    3、标签的特点
    (1)分类
    A:成对出现的标签
    B:自关闭的标签
    (2)特点
    A:标签必须正确的关闭
    B:标签不能出现重名
    C:标签可以有标签体也可以没有
    D:标签可以有属性,但是一个标签不能出现同名属性
     
    最简单的标签:没有标签体也没有属性的标签
     
    4、自定义标签的开发流程(上面的插图
    A:明确要实现的功能:要在页面显示具体什么内容
    B:开发标签处理类
    C:创建以及配置标签描述文件:TLD文件
    D:配置web.xml
    E:jsp页面调用标签
     
    5、开发标签处理类
    (1)父类
    一个接口两个类
    接口:Tag接口javax.servlet.jsp.tagext.Tag
    类:
    自关闭:TagSupport 
    成对出现:BodyTagSupport
    (2)开发标签类
    集成自指定的类重写setPageContext(),doStartTag(),doEndTag()
    重点:标签开始操作doStartTag()方法★
     
    6、创建标签配置文件(TLD文件)
    (1)作用
    是用来统一管理多个标签处理类的xml文件。
    (2)创建
    具有自己的格式和规范的(和XML文件一样)
    推荐WEN-INF目录下,创建自己的tld文件。
    (3)文件格式
    A:根元素:taglib
    B:taglib的四个起始子元素
    <tlib-version>标签库的技术标准的版本1.0</tlib-version>
    <jsp-version>支持的jsp的技术标准版本1.2</jsp-version>
    <short-name>标签库文件的命名空间:缩写</short-name>
    <uri>当前标签库文件的唯一标记的符号(别名)</uri>
     
     
    命名空间用来区分当前标签是属于哪个标签库的名称简写。<jsp:useBean>
     
    说明:uri子元素是可有可无的,但是会对后期的调用产生影响。
     
    C:tag子元素
    每个标签处理类都必须在tld文件中进行配置。每个标签类都对应一个tag元素,描述自己的配置信息。
    <tag>
         <name>标签处理类的别名</name>
         <tag-class>标签类的物理地址</tag-class>
         <body-content>是否有标签体</body-content>
    </tag>
     
    body-content:值默认的是jsp。如果是自关闭标签,需要制定成empty。
    如果标签有属性,还有attribute子元素。
     
    7、配置web.xml
    (1)作用
    在web.xml中进行标签配置文件的设置,告诉web应用程序,需要调用的自定义标签在哪里
    (2)前提
    在标签配置文件中,如果没有进行<uri>的配置,则必须进行web.xml的配置如果已经配置了uri元素的值,就不需要进行web.xml的配置,可以直接在jsp上调用uri表现在JSP页面引入标签时候,需为taglib指令指定uri,注意和TLD文件中的标签类的别名name区分,那个是在JSP页面中调用标签时候命名空间后面写入
    (3)配置(如上图在WEB.XML中的配置)
    所有的标签配置文件的配置,都必须在<jsp-config>元素中。每个配置文件有自己<taglib>元素。
    <taglib>
    <taglib-location>标签配置文件的物理地址</taglib-location>
    <taglib-uri>标签配置文件的调用别名</taglib-uri>
    </taglib>
     
    8、jsp调用标签
    (1)引入标签库
    利用taglib指令实现引入
    <%@ taglib uri="标签库的别名" prefix="标签库的前缀(命名空间)"%>
    uri:如果tld文件中已经配置了uri,必须与tld的uri一致。如果tld中没有配置,必须与web.xml中的taglib-uri一致。
    prefix:前缀,如果在tld文件中设置了short-name,则必须与short-name保持一致。
     
    (2)调用标签
    <前缀:标签类的别名>
     
    (3)标签处理类的生命周期
    A:加载
    根据标签类的别名,定位标签处理类,加载到容器上
    B:实例化
    根据默认无参构造函数,进行实例化
    C:设置上下文
    设置页面上下文,获得内置对象
    D:设置父标签
    E:执行标签开始的操作
    F:执行标签结束的操作
    G:资源释放
     
    9、jsp和标签处理类的信息交互方式
    两种:
    A:借助session属性,由jsp向标签处理类传递值
    B:借助于标签的属性,实现传值。
     
    10、属性
    (1)理解
    用来附加说明标签基本信息的名称与值的集合。
    (2)分类
    必须有的属性
    可有可无的属性
    (3)特点
    A:是名称与值的集合
    B:如果有属性,属性必有值
    C:属性的值必须用引括起来
    D:一个标签不允许有同名属性
    (4)设置
    A:在标签处理类中,创建代表属性的变量以及对应的set/get方法(见上图)
    在标签处理类中,属性是以变量的方式存在的。
    B:在标签开始动作中,直接使用变量
    C:在标签配置文件上,在相应的tag中,添加属性配置。
    每个属性都有自己的<attribute>标签
    <attribute>
      <name>属性的名称(与类中变量同名)</name>
      <required>属性是否是必须的(true/false)</required>
      <rtexprvalue>属性的值是否通过运行时加以赋值(程序动态赋值)</rtexprvalue>
    </attribute>
    D:jsp页面上的标签中,使用属性
    注意:属性名必须与类中的变量同名。
     
     
  • 相关阅读:
    Redis简介(数据结构,哨兵、集群和SpringDataRedis)
    FastDFS + Nginx
    Dubbo
    Ubuntu下Zookeeper的安装和基本使用
    RMI简介
    RPC
    各大技术团队的博客
    天了噜,为什么外链css要放在头部,js要放在尾部?
    月经帖 | 2019.11
    前端面试知识点
  • 原文地址:https://www.cnblogs.com/a757956132/p/4667787.html
Copyright © 2020-2023  润新知