JSTL patch

This is a patched version of the Jakarta Standard Tag Library
which implements the JSTL 1.1 specification. This patch makes the XML tags run 100 times faster. I wrote almost no code, I just reverted the XPathUtil class to a previous version and managed to compile the whole thing.

Originally the Standard Taglib used the Jaxen XPath processor. With version 1.1 the project switched to Xalan, decreasing performance by a factor of 100. At my company we chose to use JSTL and we’re really happy about it. But our sites must work now, so I put together this patched version. I hope to be able to use the official version very soon. In the meanwhile, if you’re using JSTL in a production environment give this version a try.

I submitted this patch to the Standard Taglib developers but it was refused because it implies a dependency on Jaxen. Here’s the original thread on the taglibs-dev at jakarta.apache.org mailing list.

To install over an existing webapp just drop in the standard-*.*.*-patched.jar and remove standard.jar.
You also need jaxen-*.*.jar from the Jaxen project.

Requirements

Download

  1. Rob Vugts says:

    Great stuff Flavio,

    I noticed a massive performance degradation too, after upgrading to JSTL 1.1, and I am very pleased to see that you have made your workaround available to other people. Your fix made my JSTL web pages usable again!

    It also fixed the issues I was having to get JSTL 1.1 working with java 1.5. Until I installed your patch, I needed to include xalan.jar in my war files to get around many class loading errors, but now all works as before.

    Many thanks!

    Rob

  2. Flavio says:

    Thank you Rob!
    By the way on Java (1.)5 you needed xalan.jar because the JDK does not expose anymore its internal xalan to the application’s classloader.

  3. Ralph Boots says:

    Thanks Flavio, this has really helped me with a job I am doing at the moment. The performance without JAXEN is shocking. I can make dinner and eat it in the time it takes to render a page without JAXEN.

    Many thanks as well.

    Ralph

  4. Erik Kristensen says:

    Hi, do you have any idea if this problem still exists or if it was fixed in later versions of jstl?