How to add TLD and Tag Lib files into a Maven's jar project

前端 未结 2 767
说谎
说谎 2021-02-05 17:54

I have a Maven project that is packaged as jar.

And I also have a Maven project that is packaged as war. This war project has a tld file and so

相关标签:
2条回答
  • 2021-02-05 18:31

    The practice these days is to put the TLD files into the tag library JAR and let the class loader find them. Download the Apache JSTL JARs and see how they do it. I'd recommend following that convention. It'll simplify your app too, because you won't have to declare the TLD in your web.xml file: just put the JAR in your CLASSPATH and make sure that the URI in your .jsp matches that in the TLD.

    0 讨论(0)
  • 2021-02-05 18:40

    @duffymo - Your solution totally works. Adding graphic to your description.

    Create a maven project that generates JAR. keep the structure like this below

     src -- main
                |-- java
                |      `-- net
                |            `-- madhur
                |                 `-- helloTag.java
                `-- resources
                      `-- META-INF
                            `-- tags
                                 `-- customTags.tld
    

    To your customTags.tld file add uri something like this

    <uri>http://www.xyzabc.com/taglibs/customTags</uri>
    

    Accessing tags in you WAR file

    War should have following structure

      META-INF/
      META-INF/MANIFEST.MF
      WEB-INF/
      WEB-INF/classes/
      WEB-INF/lib/
      WEB-INF/lib/{tagLibrary}.jar
      WEB-INF/web.xml
      WEB-INF/customTags.tld
    

    web.xml

        <jsp-config>
            <taglib>
                <taglib-uri>www.xyzabc.com/taglibs/customTags</taglib-uri>
                <taglib-location>/WEB-INF/customTags.tld</taglib-location>
            </taglib>
        </jsp-config>
    

    Using tag in FTL or JSP file

    Ftl:

    <#assign ct = JspTaglibs["www.xyzabc.com/taglibs/customTags"]>
    
    0 讨论(0)
提交回复
热议问题