Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the difference between the various JSTL libraries out there and which to use?

I'm puzzled because of build and run errors that mislead me. From them, I can't quite figure out what the distinction is between the various JavaServer Page Standard Tag Libraries. For instance, I see:

jstl.jar (in Apache Tomcat)
jstl-1.2.jar (in Tomahawk examples)
jstl-impl.jar (in GlassFish)

In times past, I've used (and recently recovered and have stored privately against disaster) from javax.servlet.jsp.jstl

jstl-api-1.2.jar
jstl-impl-1.2.jar

These latter are the only ones I seem to be able to use reliably in doing JavaServer Faces (JSF) work.

There's no wiki statement I've found that contrasts these different JARs. Yeah, I know their ages are different. I wonder, for instance, if jstl.jar isn't supposed to be a modern, definitive, both in one (api and impl) and I'm just using the wrong JSF libraries (myfaces-api-1.2.8.jar, for instance) to go with it?

My purpose is to establish a definitive set of JARs for doing Facelet work using either MyFaces or RichFaces, the two I know best.

Thanks to anyone who can shed some light and best practice on this.

like image 315
Russ Bateman Avatar asked Feb 04 '11 18:02

Russ Bateman


1 Answers

If your target servletcontainer has it builtin, then you do not need to have any in your /WEB-INF/lib. Full fledged Java EE containers like Glassfish and JBoss AS have it builtin.

If your target servletcontainer does not have it builtin (Tomcat, etc), or you want to cover as much as possible servletcontainers, then you need to pick the newest JSTL version which matches the Servlet API version as declared by your web.xml.

For more detail about JSTL version differences and where to download them, see our own JSTL tag wiki page. It's the same page as when you hover the jstl tag below your question and click info.

like image 197
BalusC Avatar answered Oct 07 '22 13:10

BalusC