Stable Release in branch 2.3
2.3.37
Released 30 Dec 2018
(7 years ago)
SoftwareApache Struts
Version2.3
RequirementServlet API 2.4,
JSP API 2.0,
Java 6
Initial release2.3.1
08 Dec 2011
(14 years ago)
Latest release2.3.37
30 Dec 2018
(7 years ago)
Support statusNo
Release noteshttps://github.com/apache/struts/releases/tag/STRUTS_2.3.37
Source codehttps://github.com/apache/struts/tree/STRUTS_2.3.37
Documentationhttps://javadoc.io/doc/org.apache.struts/struts2-core/2.3.37/index.html
Downloadhttps://mvnrepository.com/artifact/org.apache.struts/struts2-core/2.3.37
Apache Struts 2.3 ReleasesView full list

What Is New in Apache Struts 2.3

This release brings the framework up to speed with modern Java versions and introduces key enhancements to its core components. You'll find better Java 7 support, a new plugin system, and important internal upgrades.

Category Key Changes
New Features Convention Plugin, Java 7 Support, Enhanced REST Plugin
Improvements Freemarker Upgrade, OGNL Performance, XWork Dependency Update
Deprecations Codebehind Plugin, Deprecated Methods Removal
Bug Fixes Various issues resolved from previous versions

How does Struts 2.3 handle modern Java development?

The framework now officially supports Java 7, which was a significant step forward at the time. This means you can use features like the diamond operator and try-with-resources within your Struts applications without compatibility headaches.

In practice, this update mattered because it aligned Struts with the JDK versions developers were actually using in production. The internal refactoring to support newer Java versions also helped pave the way for future enhancements.

What changed with plugins in this release?

Struts 2.3 introduced the Convention Plugin as a replacement for the older Codebehind Plugin, which was deprecated. The Convention-over-Configuration approach reduces the amount of XML you need to write by detecting your actions based on naming conventions.

The REST plugin also got significant enhancements, making it more practical for building web services. If you're building APIs with Struts, this version made it much cleaner to handle different content types and HTTP methods.

Were there any template engine improvements?

Yes, Freemarker was upgraded to version 2.3.19. This matters because Freemarker is core to how Struts renders views, and the update brought performance improvements and bug fixes from the Freemarker project itself.

XWork also saw an update to version 2.3.3. Since XWork provides the foundational command pattern framework that Struts builds upon, this upgrade improved overall stability and performance for the entire stack.

What about OGNL expression handling?

OGNL received performance enhancements that made expression evaluation faster. This directly affects how quickly your value stack operations and expression evaluations happen in practice.

They also cleaned up deprecated methods and classes that had been hanging around from older versions. This kind of housekeeping makes the codebase cleaner and helps avoid confusion about which APIs to use.

FAQ

Is the Codebehind Plugin still available in Struts 2.3?
No, it was deprecated in favor of the Convention Plugin. The Convention Plugin uses annotations and naming conventions instead of XML configuration, which most developers find more intuitive.

Can I run Struts 2.3 on Java 6?
While Java 7 is the recommended version, backward compatibility with Java 6 was maintained. However, you won't be able to use the new Java 7 language features if you stick with the older JDK.

What version of Freemarker does Struts 2.3 use?
It uses Freemarker 2.3.19. This was a notable upgrade from previous versions and included various performance improvements and bug fixes from the Freemarker project.

Were there any breaking changes in this release?
Mostly additive changes, but they did remove some deprecated methods. You should check the release notes for specific methods that might affect your codebase if you're upgrading from a much older version.

Did the REST plugin get any new features?
Yes, the REST plugin was enhanced to better handle content negotiation and HTTP method mapping. It became more practical for building full-featured RESTful APIs with Struts.

Releases In Branch 2.3

VersionRelease date
2.3.3730 Dec 2018
(7 years ago)
2.3.3622 Sep 2018
(7 years ago)
2.3.3524 Jul 2018
(8 years ago)
2.3.3405 Sep 2017
(8 years ago)
2.3.3307 Jul 2017
(9 years ago)
2.3.3206 Mar 2017
(9 years ago)
2.3.3105 Oct 2016
(9 years ago)
2.3.3007 Jul 2016
(10 years ago)
2.3.2914 Jun 2016
(10 years ago)
2.3.24.320 Apr 2016
(10 years ago)
2.3.20.320 Apr 2016
(10 years ago)
2.3.28.119 Apr 2016
(10 years ago)
2.3.2818 Mar 2016
(10 years ago)
2.3.24.122 Sep 2015
(10 years ago)
2.3.20.106 May 2015
(11 years ago)
2.3.2403 May 2015
(11 years ago)
2.3.2021 Nov 2014
(11 years ago)
2.3.16.302 May 2014
(12 years ago)
2.3.16.224 Apr 2014
(12 years ago)
2.3.16.101 Mar 2014
(12 years ago)
2.3.1630 Nov 2013
(12 years ago)
2.3.15.315 Oct 2013
(12 years ago)
2.3.15.218 Sep 2013
(12 years ago)
2.3.15.114 Jul 2013
(13 years ago)
2.3.1514 Jun 2013
(13 years ago)
2.3.14.303 Jun 2013
(13 years ago)
2.3.14.224 May 2013
(13 years ago)
2.3.14.118 Apr 2013
(13 years ago)
2.3.1428 Mar 2013
(13 years ago)
2.3.1206 Mar 2013
(13 years ago)
2.3.817 Dec 2012
(13 years ago)
2.3.706 Nov 2012
(13 years ago)
2.3.4.103 Aug 2012
(14 years ago)
2.3.412 May 2012
(14 years ago)
2.3.316 Apr 2012
(14 years ago)
2.3.1.220 Jan 2012
(14 years ago)
2.3.1.125 Dec 2011
(14 years ago)
2.3.108 Dec 2011
(14 years ago)