• jsp中 自定义 tag的几种方式


    在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端)作用比较复杂,可以实现很多高级的作用。

  • 相关阅读:
    游戏服务器架构概要
    牛客网_Go语言相关练习_选择题(3)
    Go语言实践_实现一(服务器端)对多(客户端)在线聊天室
    Go语言实践_实现一(客户端)对一(服务器端)聊天室
    牛客网_Go语言相关练习_选择题(2)
    飞鱼48小时游戏创作嘉年华_厦门Pitch Time总结与收获
    牛客网_Go语言相关练习_选择题(1)
    Go语言_iota用法
    游戏服务器概述
    LeetCode_1. Two Sum_Solution
  • 原文地址:https://www.cnblogs.com/signheart/p/66409e0db514ed0071e03b1430eba018.html
Copyright © 2020-2023  润新知