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
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.
@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"]>