This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Given the library descriptor located at /mywebapp/WEB-INF/tlds/mytags.tld, which would be the correct taglib directive? Asume mywebapp is the web application root and that there are no <taglib> tags in the deployment descriptor.
a) <%@ taglib uri = "/mytags.tld" prefix = "my" %> b) <%@ taglib uri = "/tlds/mytags.tld" prefix = "my" %> c) <%@ taglib uri = "/WEB-INF/tlds/mytags.tld" prefix = "my" %> d) <%@ taglib uri = "/mywebapp/WEB-INF/tlds/mytags.tld" prefix = "my" %>
Book says the correct answer is c), and the book explains that if you don�t put <taglib> in DD, the uri in a taglib directive in JSP must be a full path relative to the application root.
I am confused. I though the correct answers are all of them (as long as the TLD file has corresponding <uri> )... The new (JSP2.0) way is the Container automatically maps a taglib uri to a TLD and you don't have to specify <taglib> in DD.
In my understanding, the uri in taglib directive should match with the uri element in the TLD. If the question didn't specify the TLD's uri value, you will consider the relative path to the tld starting from the Document root.