Simplified UI Tags in Struts 2
Struts 2.0.3 contains a much needed simplification of its UI tag libraries. Before 2.0.3, you had to define a property three times (in the value, label and name attributes):
<s:textfield label="%{getText('user.firstName')}" name="user.firstName" value="%{user.firstName}" cssClass="text medium"/>
In 2.0.3+, you can use the "key" attribute to replace all these attributes. For example:
<s:textfield key="user.firstName" cssClass="text medium"/>
One of the things I really like about WebWork/Struts 2 is the previous examples have the ability to write out the entire form row, rather than just an input field. Even better, the markup rendered is customizable via FreeMarker templates.
The bad news is Struts 2.0.3 never got released because the struts-annotations project hasn't had a release yet (good ol' Mavenism). The good news is Struts 2.0.4 is rumored to be out by the end of the month. In the meantime, if you're using Maven 2, you can use AppFuse's repository to get the goods. Here's the repo settings you're need:
<repositories> <repository> <id>appfuse</id> <name>AppFuse Repository</name> <url>http://static.appfuse.org/repository</url> </repository> <repository> <id>struts-203-staging</id> <name>Apache Struts 2.0.3 Staging Repository</name> <url>http://people.apache.org/builds/struts/2.0.3/m2-staging-repository</url> </repository> </repositories>
Yeah, I could just advise you to use AppFuse 2.0 - but we're having a hard enough time supporting our existing users.