6.1 Release Notes - Version 1.3.6
"I've had nothing yet, so I can't take more."
"You mean you can't take less. It's very easy to take more than nothing."
Introduction
This section contains release notes for changes that have taken place to Struts, since the Version 1.3.5 distribution. To keep up-to-date on all changes to the framework, subscribe to the (commits at struts.apache.org) list. To preview our plans for upcoming changes, please visit the Roadmap page.
- Notes on upgrading are maintained in the Wiki Upgrade pages. The wiki is a community maintained resource - please feel free to add your input so that everyone can benefit from the collective experience.
For the version requirements of each library, see the Installation chapter.
Dependencies
The following dependencies have changed:
- Validator 1.3.1 -
Commons Validator
has been upgraded to
Version 1.3.1
- as well as a number of bugfixes, compressed versions of the JavaScript routines are provided
which can be configured using the new
validator-rules-compressed.xml
config file. - Digester 1.8 - Commons Digester has been upgraded to Version 1.8 to fix issue DIGESTER-29.
Highlights of Changes
The purpose of this section is to highlight the new features since the Version 1.3.5 distribution. For more detail, see the Project Info reports for each component, which include a list of external dependencies.
You can also access to the Apache Struts source repository and change logs directly through both web browser and Subversion client interfaces.
Action ID
An action mapping may now may be given an identifier by the new actionId
property which uniquely identifies the mapping within a module:
<action path="/person/view" type="..." input="..."> <set-property property="actionId" value="viewPersonAction" /> <forward name="success" path="person.jsp" /> </action>
Just as the TilesRequestProcessor
could recognize a tile definition
and resolve it to the intended JSP, so does Struts now have built-in
recognition for URIs that begin with an actionId
and will automatically
translate forwards. Both these forwards below will be resolved internally
to /person/view.do
(with parameters included):
<forward name="success" path="viewPersonAction" /> <forward name="success" path="viewPersonAction?fruit=banana&color=yellow" />
You can effectively eliminate all URI management throughout the Struts configuration
files and within JSP. The tag libraries are also updated to recognize the
actionId
:
<html:form action="savePersonAction">...</html:form> <html:link action="viewPersonAction">...</html:link>
Note: It is good practice to name the actionId
as entityAction
to distinguish the identifier from, perhaps, a Tiles definition named entityPage.
Internationalization (I18N) Tag Properties
Struts tag libraries now include the HTML I18N properties. This allows sites that specialize in internationalization to specify both bi-directional text and language at the tag level:
<html:link action="viewPersonAction" dir="ltor" lang="es"/>vea a persona</html:link>
Dynamic Link Parameters
The Struts <html:link>
, <html:frame>
,
<html:rewrite>
tag libaries now allow their bodies to nest the new
<html:param>
tag. This is useful when it is awkward (or inappropriate)
to pass in existing parameters as a Map
, which is still supported and will
be appened to any present <html:param>
tags:
<html:link action="viewPersonAction"> View Profile of A Struts Developer <html:param name="id" value="1" /> <html:param name="name" value="Ted Husted" /> </html:link>
Property MessageResources Modes
PropertyMessageResources
now has a compatibility mode
option which allows it to be configured to operate in modes compatible with
either JSTL or PropertyResourceBundle
(as well as the
backwardly compatible default mode). To use the new modes configure
the the message resources in the struts-config.xml
in the
following way (note the use of the key attribute
in <set-property>
):
<message-resources parameter="...."> <set-property key="mode" value="JSTL"/> // JSTL mode </message-resources> <message-resources parameter="...."> <set-property key="mode" value="resource"/> // PropertyResourceBundle mode </message-resources>
Issue Tracking
Bug
- [STR-2894] - The <form-bean> type attribute should be optional
- [STR-2903] - MappingDispatchAction throws an error when mapping.getParameter returns null
- [STR-2916] - Arbitrary properties don't get copied when creating ActionRedirect objects based on an existing ForwardConfig
- [STR-2917] - ForwardConfig inheritance doesn't work when trying to inherit global forwards
- [STR-2920] - Broken link to "MessageResources" in user guide
- [STR-2922] - Broken Link in User Guide
- [STR-2932] - html:option tag does not apply any filtering to escape HTML-sensitive characters
- [STR-2935] - Tiles resource chain-config.xml missing RemovedCachedMessages and SetOriginalURI
- [STR-2936] - Incorrect validator name floatRange used in maxlength error
- [STR-2955] - extending action does not pick up the correct validate attribute
- [STR-2966] - s:commandLink doesn't work with Apache Trinidad or Oracle's ADF Faces
- [STR-2967] - html:image takes a "module-aware" path but does not allow module to be specified
- [STR-2971] - one of validator.Resources.getActionMessage method does not respect message's "bundle" attribute
- [STR-2972] - LazyValidatorForm cannot be saved in the session
- [STR-2973] - multiple lifecycle (FIXME in code)
- [STR-2977] - ELFormTagBeanInfo wrongly references ELTextTag
- [STR-2985] - Validate language and country according to RFC2616 in HtmlTag
- [STR-2987] - Scripting Mailreader: cannot log out
Improvement
- [STR-2077] - Provide a
PropertyResourceBundle
compatibility option for PropertyMessageResources - [STR-2925] - Provide a JSTL compatibility option for PropertyMessageResources
- [STR-2839] - Create aggregated Javadocs
- [STR-2951] - Various documentation improvements
- [STR-2952] - Maven build and infrastructure improvements
- [STR-2958] - ClassNotFoundExceptions are swallowed by FormPropertyConfig
- [STR-2980] - Typo in documentation: "indefinately"
- [STR-2981] - Adjust AbstractAuthorizeAction to allow custom code to throw its own UnauthorizedActionException
- [STR-2982] - Complete JavaDoc package summaries
New Feature
- [STR-746] - Add <html:param> for multiple parameters
- [STR-1559] - Need Bidirectional support for RtoL languages in html:html tag
- [STR-2864] - Add actionId attribute to action mapping
- [STR-2983] - Provide a new compressed version of the validator-rules.xml (requires Commons Validator 1.3.1)
Task
Next: Installation