News

Skip to end of metadata
Go to start of metadata

Visit this page regularly to keep up to date with what's going on with Stripes. Alternatively sign up for the Stripes Users' mailing list.

Stripes 1.5.3 Released

Version 1.5.3 of Stripes has been released. It is a bug fix release and addresses several issues with Stripes 1.5.2.

Stripes is a Java web application framework that focuses on ease of use and developer productivity.

Stripes 1.5.2 Released

Version 1.5.2 of Stripes has been released. It is a bug fix release and addresses several issues with Stripes 1.5.1.

Stripes is a Java web application framework that focuses on ease of use and developer productivity.

Stripes 1.5 is available for immediate download. Some of the major enhancements and bug fixes include:

  • Even less configuration! Using the new Extension.Packages configuration parameter, Stripes can automatically locate and use your extensions (TypeConverter, Formatter, ExceptionHandler, ActionBeanContext, etc.). Most applications can now be configured with just two parameters: Extension.Packages and ActionResolver.Packages. Use the @DontAutoLoad annotation to tell Stripes to ignore an extension class.
  • Clean URLs. Just declare URI parameters using, for example, @UrlBinding("/SomeBean/{foo}/{bar}.action") on your ActionBean. The parameters will appear as normal request parameters and will be validated, converted, and bound just like normal request parameters, too. Clean URLs are fully supported by s:link, s:url, and s:form.
  • DynamicMappingFilter (DMF) allows you to skirt the limitations of URL-mapping for servlets, making it great for use with clean URLs. For more information, see the DMF Javadoc.
  • Binding access control. Annotate your ActionBean class with @StrictBinding to restrict binding only to those properties you wish to allow. @StrictBinding works with @Validate to determine which properties may be bound to. For special cases, the annotation also supports the "policy," "allow," and "deny" elements. More information can be found in the Javadocs.
  • Optional _sourcePage for links. By default, the _sourcePage parameter is no longer appended to URLs generated by s:url and s:link. This can be overridden with addSourcePage="true". The _sourcePage parameter is still included in forms.
  • Easier Formatters and TypeConverters. In addition to improvements to the TypeConverterFactory and FormatterFactory APIs, Formatters and TypeConverters can now be loaded using autodiscovery (see above), eliminating the need to extend DefaultTypeConverterFactory and DefaultFormatterFactory. DefaultFormatterFactory has been improved so that it now provides support for inheritance and interfaces. For example, if a Formatter for List is registered, that formatter will be used for any type that implements List.
  • DateTypeConverter improvements. A lot of work was put into making DateTypeConverter more robust.
  • Transparent encryption of ActionBean property values. You can now use @Validate(encrypted=true) to cause ActionBean property values to be encrypted before being written to a page in a link or form input. This is meant for cases where you want to send a value back to the server with assurance that it is the same value that was written by the server.
  • Validation error report. If an ActionBean is called and there are validation errors and no _sourcePage is given, Stripes will generate a nicely formatted report detailing the validation errors that occurred. This is a vast improvement over the StripesRuntimeException that used to be thrown, with no information as to what went wrong.
  • New s:format tag can be used to format an object using a Formatter.
  • Tags and Resolutions use Formatters. Where String.valueOf(object) used to be called, Stripes will now attempt to format the object using a Formatter and use String.valueOf() only as a last resort.
  • @DontBind annotation to completely bypass both binding and validation for an event.
  • @DontValidate no longer fails due to type conversion errors.
  • Automatic detection of file upload provider. You can select your file upload implementation just by dropping it in. Commons-FileUpload takes precedence over COS if both libraries are present.
  • Partial forms. The s:form tag supports a new attribute partial="true|false" that allows for partial forms nested inside another form tag. This facilitates AJAX code that returns HTML snippets to the client that might contain form inputs.
  • Encrypted _sourcePage. The _sourcePage parameter is encrypted to prevent revealing sensitive information about the structure of the app.
  • Context-relative URLs. The s:link and s:url tags have a new attribute, prependContext="true|false", that can be used to generate URLs relative to the app context (when set to false). Relative URLs can be used with JSTL tags much more easily.
  • Client cache control. The new @HttpCache annotation can be applied to an ActionBean class and/or event handler method to control how the client caches the response. Annotations on methods override those on classes and the annotation is inherited from superclasses. This is especially useful for AJAX calls from IE.
  • Property labels with annotations. @Validate(label="Some property label") can be used during development to easily label ActionBean properties without having to add them to the resource bundle. Values from the resource bundle override those from the annotation.
  • Automatic maxlength on text inputs. The maxlength attribute of a text input is automatically set if a value is specified by @Validate(maxlength=X).
  • s:form supports s:param. Parameters can be added to a form URL by included s:param tags within the s:form tag. This is mostly intended for use with clean URLs, but it works with normal parameters as well.

There are many more. The full list can be found in the JIRA Changelog

This release is not completely backward compatible with Stripes 1.4. Some changes to your code and configuration may be necessary. The file upgrading.txt in the Stripes distribution bundle explains the incompatibilities and potential pitfalls.

Enjoy.

Stripes 1.4.3 Released
jiraissues: Unable to determine if sort should be enabled.
Stripes 1.4.2 Released
jiraissues: Unable to determine if sort should be enabled.
Stripes 1.4 Released
jiraissues: Unable to determine if sort should be enabled.
Stripes 1.3 Released
jiraissues: Unable to determine if sort should be enabled.
Stripes 1.2.2 Released

Stripes 1.2.2 has been released. This version is a minor bug fix version that includes fixes for two known bugs as well as two small improvements:

  • STS-115 - Incorrect creation of client browser URL while using RedirectResolution within ActionBean Handler method.
  • STS-119 - TypeConverters cannot produce arrays of Collections from a single parameter value
  • STS-120 - Reparent the SpringAwareActionResolver under NameBasedActionResolver
  • STS-121 - New TypeConverter for converting a single field value into multiple values

To download this release please visit the Download page.

Stripes 1.2.1 Released

Stripes 1.2.1 has been released.  This version is a minor bugfix version that fixes four known issues from the 1.2 release. The bugs fixed are:

  • STS-110 - FlashCope fails after session invalidation
  • STS-111 - Stripes 1.2 doesn't work with Spring unless you go through an ActionBean first
  • STS-112 - FormTag doesn't always preappend the contextpath
  • STS-114 - URLBuilder does not create valid XHTML
Stripes 1.2 Released

Stripes 1.2 Release Notes

Stripes 1.2 contains several major areas of new functionality as well as many smaller enhancements and bug fixes. The 1.2 release number is meant to indicate the inclusion of major new functionality and not a break in backwards compatibility.

Major new functionality

  • Wizard Forms: A new system for automatically handling wizard (multi-page) forms. State is automatically persisted between pages in a way that is secure and multi-window safe. Furthermore validation is run only for those fields that were present on the page at rendering! For details see the new Wizard Forms How To.
  • Flash Scope: The new flash scope is used to make objects from the current request cycle available to the next request cycle (in the same window). It is extremely useful in enabling redirect-after-post semantics without losing all the information generated by the post. For details see the State Management How To.
  • Action Resolution using Names: A new ActionResolver implementation, NameBasedActionResolver. This resolver maps urls to classes intelligently based on class (and package) names, and maps events to methods based on method names. Where present annotations will override the name-driven mappings. In addition the NameBasedActionResolver is simple to extend to introduce new rules for url and event mapping.
  • Pluggable Tag Repopulation: Value population and re-population for form field tags is now handled by a configurable component, making it easy to change the behaviour. For details see the Configuration Reference page or refer to the JavaDoc for PopulationStrategy

Other enhancements and changes

  • Validation annotations can now be placed on private fields in addition to public getter/setter methods
  • Annotations in child classes will automatically override those in parent classes
  • The @Validate annotation now supports minimum and maximum value checking for all numeric types
  • Built in numeric type converters now automatically handle currency and parenthetical-negative values
  • A new Email type converter (requires JavaMail which is not distributed with Stripes)
  • Ability to have Validatable.validate() called even when validation errors exist
  • Improved generation of "friendly" property names when localized names are not provided
  • Default form method is now POST
  • RuntimeConfiguration is now the default Configuration

Bug fixes

  • HTML event attributes are now correctly specified for stripes:form in the TLD
  • Component type of deeply nested collections is now recognized correctly
  • Bugzooky app now renders correctly in Internet Explorer (an IE XHTML bug was causing it to fail)
  • Made handling of URLs (specifically when to prepend context path) consistent between stripes:form and stripes:link tags
  • Removed all uses of Class.forName() and replaced with getContextClassLoader().loadClass()
Stripes 1.1.2 Released
jiraissues: Unable to determine if sort should be enabled.
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.