Standard 1.1 Release Notes

# Standard: An Implementation of the JSP™ Standard Tag Library (JSTL)

Version: 1.1.2
Release Notes

The Standard 1.1.2 release is an implementation of the JSTL 1.1 Specification.

The Standard Taglib, which is hosted at Apache, is used as the source repository for the JSTL reference implementation supplied by Sun Microsystems, Inc.

## Release History

October 2004 • Standard 1.1.2

The latest implementation is available from the Nightly Builds.

  Bugs fixed since Standard 1.1.1 Taglib release:

> Bug Id | Summary
> --- | ---
> 17388 | Close statement created in update tag. It is good programming pro-active to close statements as soon as they are finished even though they will also be closed when the connection that created them is closed.
> 31313 | According to the W3C document the schemaLocation declaration is made up of a pair of URI references. One defines the namespace name and the other is a hint as to the location of the schema document. The space in the schemaLocation definition separates the two declarations. For a complete explanation you can take a look at Section 4.3.2 of W3C Xml Schema Document In the JSTL case the location is not an absolute URI which can be confusing especially to some IDE's. Went ahead and changed it to be an absolute URI pointing to the schema document location.
> 30646 | Fixed implementation so that it compiles under J2SE 5.0. Changed the J2SE 5.0 reserved keyword "enum" to "enum_". NOTE: the JAXP 1.2 classes will need to be specified with J2SE 5.0 since the the 5.0 bundled JAXP 1.3 packages have been moved around and re-named.
> 30647 | Followed the BluePrints Guidelines for web application project structure. Most IDEs assume the BluePrints structure so abiding by these guidelines will help them integrate the examples. The following changes were made to the examples directory structure: moved the examples deployment descriptor to the web/WEB-INF directory out from conf moved the jstl-examples.tld to web/WEB-INF/tlds updated build.xml to reflect new directory structure
> 31147 | Fixed XPath Expression evaluation so that the expressions are evaluated relative to the document Node as opposed to the document Root.

> Other changes and additions:

> - In JstlUriResolver when external entitities are resolved the 'base' varies from different Xalan implementations. Fixed how base is handled.

July 2004 • Standard 1.1.1
  Bugs fixed since Standard 1.1.0 Taglib release:

> Bug Id | Summary
> --- | ---
> 16773 | Substituted static values where Boolean objects were created.
> 25382 | Optimization of the xml escaping used by JSTL Functions and the out tag handlers.
> 25967 | Removed synchronization on getEvaluatorByName() method. Now synchronizing on nameMap and allowing reads to occur without blocking. Should be a performance improvement.
> 26614 | Remove quotes from prefix when throwing an exception

> Other changes and additions:

> - Fixed Core TLV to allow EL and RT based actions to be mixed as allowed by the JSTL specification.
> - Trimmed sql dataSource attribute tokens so any spaces in the comma delimited list are ignored.
> - Added Junit and Cactus testing framework. Documentation is in README_src.txt available in the source distribution.
> - Updated licenses to the new Apache License, Version 2.0.

January 2004 • Standard 1.1.0

This is a complete implementation of the JSTL 1.1 Maintenance Release.

  Bugs fixed since Standard 1.1.0-B1 Taglib release:

> Bug Id | Summary
> --- | ---
> 15703 | Illegal scope attribute without var in "fmt:setLocale" tag
> 24892 | ResultImpl should implement java.io.Serializable
> 25637 | IteratorTagSupport example is missing
> 22860 | tag url generate invalid result for root context
> 24597 | accept-language header missing and fallback locale
> 24863 | permittedTaglibs.tld and scriptfree.tld do not validate in xml parser
> 25638 | Xml filter example doesn't work
> 26320 | <c:out> doesn't work properly when tag handlers are pooling

> Other changes and additions:

> - Regarding bug #24892, it's important to note that relying on the serializability of Result objects might not be portable across different implementations of the JSTL spec. Also, ResultImpl will be serializable only if the values returned by the ResultSet are serializable too, which depends on the JDBC driver being used.

September 2003 • Standard 1.1.0-B1

This is a complete implementation of the JSTL 1.1 Maintenance Release.

  Bugs fixed since Standard 1.0.3 Taglib release:

> Bug Id | Summary
> --- | ---
> 18498 | fmt:formatNumber now removes the scoped variable when the value is null or empty.
> 16912 | c:param now encodes URL with URLEncoder.encode(str, encoding)
> 17388 | PreparedStatement used in sql:query closed immediately after use to avoid leaks.
> 10024 | Advisory character encoding now properly fetched from "charset" attribute of "content-type" header (required change to spec)
> 17440 | Fixed processing of Locale when variant is used.
> 20197 | <sql:setDataSource> did not allow the specification of a scope without a var attribute to set the SQl DataSource configuration setting. Fixed.
> 22034 | Page scope not properly set with <c:if>. Fixed.
> 21188 | Config.find() fails on invalidated sessions. Fixed.
> 16775 | Consistent use JspTagException: (1) always include original exception when available. (2) use ex.toString() instead of getMessage().
> 22188 | Type conversion rules now properly applied when setting a bean property using <c:set>.

> Other changes and additions:

> - Added Version class to easily tell the version of the jar file.
> - Added a few sample cases to highlight url rewriting and encoding.
> - New sample JSP page demoing I18N-Formatting capabilities.
> - Our dependency on jaxen and saxpath has been removed by switching our XPath support to Xalan.
> - Added attribute descriptions in the TLDs.
> - javax.servlet.jsp.jstl.sql.ResultImpl now implements java.io.Serializable, and insert a comment in the Release Notes stating that relying on the serializability of Result objects might not be portable across different implementations of the JSTL spec

February 2003 • Standard 1.0.3

  Bugs fixed since Standard 1.0.2 Taglib release:

> Bug Id | Summary
> --- | ---
> 16069 | Tag-handler reuse discovered a bug in 's processing of default values. This bug was fixed by initializing an instance variable in doStartTag().
> 8694 | We revisited this bug prompted by a report from a user of the J2EE RI and adjusted the EL implementation to accommodate the J2EE RI's default security restrictions.
> 15977 | Minor display-related bug in ScriptFreeTLV
> 14695 | There still was a bug when the `fmt:message` tag was pooled and reused, and a bundle was not specified explicitely.
> 15169 | Added `<uri>` definition in WEB-INF/jstl-examples.tld for /jstl-examples-taglib.
> 15495 | If is used to set a property of a bean, and a setter method does not exist for that bean, a NullPointerException was thrown. A JspException with an appropriate error message is now thrown instead.
> 15621 | The tag handler for <fmt:requestEncoding> was not resetting the encoding value it picks up from the javax.servlet.jsp.jstl.fmt.request.charset session attribute between invokations.
> 15873 | We now expose the exception object thrown by a bean property evaluated by the EL (not just the exception message).
> 16377 | Improved the exception message when there is a failure accessing an absolute URL.
> 16379 | Fixed minor typos in standard-examples.

> Other changes and additions:

> - Fixed minor typos in JSTL API Javadoc documentation.
> - Added TLV examples (scriptFree and PermittedTaglibs)
> - Fixed minor typo on standard/examples/web/xml/ForEach.jsp
> - Improved Japanese localization

13 October 2002 • Standard 1.0.2 Taglib released

  Bugs fixed since Standard 1.0.1 Taglib release:

> Bug Id | Summary
> --- | ---
> 11204 | The `fmt` tags used to store the `BodyContent` from one tag in the same field variable they use for `value`. This caused problems in a container that supported tag re-use since the old `BodyContent` was used.
> 11293 | The `xml:transform` tag can now be used with a series of imported stylesheets.
> 12333 | There was a bug in the EL grammar that caused attribute values like `"$${X}"` to be parsed as a single string instead of a string followed by an expression.
> 12963 | The `<c:url>` `value` attribute and the `<c:redirect>` `url` attribute are required as defined in the JSTL specification.
> 13405 | According to the JDBC specification, a null can be passed to the `PreparedStatement.setObject()` and the parameter will be set to JDBC NULL properly. The broken `PreparedStatment.setNull()` call has been removed.
> 13518 | There was a typographical error in our sample TLDs for the PermittedTaglibTLV and ScriptFreeTLV validators.

> Other changes and additions:

> - Wrapped number formatting examples that use browser-based locale inside . Now the parse exception that occurs with "de_DE" locale due to a bug in `java.text.NumberFormat` (Bugtraq bugid: 4709840) can be documented appropriately.
> - The "jsp20el.build" target was modified so that the JSTP 2.0 EL packages were renamed to avoid potential JSTL 1.0 conflict.
> - Root cause now exposed when an EL expression evaluation fails.
> - New regression tests for the EL parser.

26 July 2002 • Standard 1.0.1 Taglib released

  Bugs fixed since Standard 1.0 Taglib Final release:

> Bug Id | Summary
> --- | ---
> 8723 | Fixed '`xslt`' attribute for `<x:transform>` to only accept an object exported by `<x:parse>` if it's a `String`, `Reader`, or `javax.xml.transform.Source`.
> 9257 | Added `"UNICODE_INPUT = true"` to the `ELParser.jj` options so that non-ascii values can be parsed.
> 9528 | `GettingStarted.html` guide updated to include all jar dependency information.
> 9581 | SQL examples updated to allow for the inputting of `dataSource` username and password.
> 9968 | `c:url` tag no longer prepends path to page relative URLs.
> 10175 | Added a `<welcome-file-list>` element to the example application's deployment descriptor. Modified `standard-doc` in a corresponding fashion.
> 10334 | `BundleSupport` modified to use the current context classloader instead of the classloader that loaded it. This change was necessary in order for `BundleSupport` to properly find resources in a web application. The SQL `DataSourceWrapper` also modified to properly use classloader delegation to load resources.
> 10856 | Fixed incorrect `x:param` error message.

> Other changes and additions:

> - Improved `x:parse` action's `EntityResolver` to work with JAXP 1.2. URI's normalized so they can be processed consistently.
> - The JSTL 1.0 Specification has all the official functional descriptions; out of date documentation removed.
> - Hard-coded and browser-based locales separated into distinct pages in order to avoid conflicting response encodings.
> - Formatting web application examples updated to use EL to access request parameters.
> - `query` and `update` tags modified to catch a more generic JDBC driver implementation generated exception when it occurs and provide a meaningful error message.
> - `DateParam` tag modified to have an empty body content as defined by the spec.
> - `PreparedStatement.setNull(parameterIndex, java.sql.Types.NULL)` now used when specifying null parameter values.
> - XPath performance improved by caching parsed representations of XPath expressions.
> - Support for relative system ID's in `<x:transform>` simplified.
> - Improved `TimeZoneSupport` javadocs
> - Added Japanese resources
> - Added support for JSP 2.0 functionality in the JSTL EL. By default, none of the new features are enabled in order to comply with the JSTL 1.0 Specification. The functionality will be triggered by a particular way of calling the interpreter.
>   - Created new new "`jsp20`" parser directory.
>   - Added new "`jsp20e`l" build target for JSP 2.0 specific features.
>   - Added copy of `*.properties` to JSP 2.0 EL jar.

21 Jun 2002
  Final Standard Taglib 1.0 release

17 Jun 2002
  Standard Taglib RC1 released.
19 Apr 2002
  Standard 1.0 Beta2 released, which is compliant with the JSTL Proposed Final Draft.

12 Mar 2002
  Standard 1.0 Beta1 released, which is compliant with the JSTL Public Review Draft.

12 Dec 2001
  Standard 1.0 EA3 released. Version includes the following changes and additions:
  - Introduction of SQL tags ("sql:*" library).
  - A performance improvement to the XML "transform" tag.
  - Minor changes and bug fixes to the i18n and XML libraries.
  - Distribution JAR files are now 'standard.jar' (RI) and 'jstl.jar' (API).
  - showSource.jsp no longer depends on raw file I/O (and so should work even when standard-examples is deployed as a WAR).
21 Nov 2001
  Standard 1.0 EA2 introduced. Version includes the following major changes and additions:
  - JSPTL has been renamed to JSTL.
  - The "jsptl" library at Jakarta Taglibs has been renamed to "standard."
  - Tags for text inclusion and URL encoding introduced.
  - Tags for i18n-capable text formatting introduced.
  - Tags for XML manipulation introduced.
  - JSTL now divides functionality among multiple TLDs. Each TLD represents a cohesive unit of functionality, such as "XML manipulation" and "formatting." 'jx' and 'jr' are no longer used; they are replaced with shorter abbreviations for the common cases (e.g., 'c', 'x').
  - ECMAScript is now the default expression evaluator. Since the first release of 1.0 EA1, new languages include JXPath and ECMAScript.
  - The RI has been thoroughly repackaged; many classes have moved.
  - The package name for the JSTL API is now javax.servlet.jsp.jstl and is subdivided into cohesive packages. (The old package for the API was javax.servlet.jsptl.)
  - A small number of minor changes were made to the code. By and large, these changes are not significant; the easiest way to discover further details is to look at the CVS archive itself.

09 Oct 2001
  JSTL 1.0 EA1 RI, version 1.2, introduced. This version includes support for ECMAScript.

23 Jul 2001
  JSTL 1.0 EA1 RI, version 1.1, is released. This version is compatible with Tomcat 4.0 B6 and Tomcat 4.0 release.

10 Jul 2001
  JSTL 1.0 EA1 RI first made available for download.

08 Jul 2001
  Initial version of JSTL RI contributed by JSR-052 Expert Group and imported into Jakarta CVS archive.