Recent Threads

What do people who use Apache Struts have to say about using it? Browse the user mailing list, and see for yourself. ApacheCon US 2008

Recent Releases

Scroll down for more about Apache Struts, the Apache Struts project, and Struts for Newbies

26 May 2008 - Struts 2.1.2 Beta Release

The latest release of Struts 2 is Struts 2.1.2, which was promoted to "Beta" on 26 March 2008. For the latest production release ("General Availability"), see Struts 2.0.11.2.

30 June 2008 - Struts 2.0.11.2 General Availability Release

The latest release of Struts 2 is Struts 2.0.11.2, which was promoted to "General Availability" on 30 June 2008.

For changes included in Struts 2.0.11.2, see the release notes. Struts 2.0.11.2 provides important security bugfixes since the 2.0.11.1 GA release.

IMPORTANT ADDITIONAL NOTES:

There are two known issues with this release:
  1. the integrated XWork 2.0.5 jar may cause problems when used in a combination of WebSphere 6.1 runtime environments with validation configuration via XML files. Possible Workarounds:
    • use annotation based validation definition instead XML based
    • stay with Struts 2.0.11.1 including XWork 2.0.4, applying the following exclude rule to your parameter interceptor refs in struts.xml
      <interceptor-ref name="params">
          <param name="excludeParams">.*[[^\\p{Graph}][\\\\#:=]].*</param>
      </interceptor-ref>
      
  2. the filtering mechanism implemeted in XWork's ParametersInterceptor to fix the described security issue does not completely avoid any possible malicious parameter name. Possible Workaround:
    • apply the following exclude rule to your parameter interceptor refs in struts.xml to avoid the usage of backslash charater in parameter names
      <interceptor-ref name="params">
          <param name="excludeParams">.*\\.*</param>
      </interceptor-ref>
      
Both issues will be addressed in a soon upcoming XWork 2.0.6 release, followed by a new Struts 2.0 GA release including this new XWork version.

01 Aug 2007 - Struts 1.3.9 Beta Release

The latest release of Struts 1 is Struts 1.3.9, which was promoted to "Beta" on 01 August 2007. For the latest production release ("General Availability"), see Struts 1.3.8.

10 Mar 2007 - Struts 1.3.8 General Availability Release

The latest production release of Struts 1 is Struts 1.3.8, which was promoted to "General Availability" (or "Ready for Primetime") on 10 March 2007. Struts 1.3 offers several new features, including a composable request processor.

Apache Struts

Apache Struts is a free open-source framework for creating Java web applications.

Web applications differ from conventional websites in that web applications can create a dynamic response. Many websites deliver only static pages. A web application can interact with databases and business logic engines to customize a response.

Web applications based on JavaServer Pages sometimes commingle database code, page design code, and control flow code. In practice, we find that unless these concerns are separated, larger applications become difficult to maintain.

One way to separate concerns in a software application is to use a Model-View-Controller (MVC) architecture. The Model represents the business or database code, the View represents the page design code, and the Controller represents the navigational code. The Struts framework is designed to help developers create web applications that utilize a MVC architecture.

The framework provides three key components:

  • A "request" handler provided by the application developer that is mapped to a standard URI.
  • A "response" handler that transfers control to another resource which completes the response.
  • A tag library that helps developers create interactive form-based applications with server pages.
The framework's architecture and tags are buzzword compliant. Struts works well with conventional REST applications and with nouveau technologies like SOAP and AJAX.

The Apache Struts Project

The Apache Struts Project is the open source community that creates and maintains the Apache Struts framework. The project consists of a diverse group of volunteers who share common values regarding collaborative, community-based open source development. The Apache Struts Project is proud to share these values with our parent organization: The Apache Software Foundation.

The project is called "Struts" because the framework is meant to furnish the "invisible underpinnings" that support professional application development. Struts provides the glue that joins the various elements of the standard Java platform into a coherent whole. Our goal is to leverage existing standards by producing the missing pieces we need to create enterprise-grade applications that are easy to maintain over time.

The Apache Struts Project offers two major versions of the Struts framework. Struts 1 is recognized as the most popular web application framework for Java. The 1.x framework is mature, well-documented, and widely supported. Struts 1 is the best choice for teams who value proven solutions to common problems.

Struts 2 was originally known as WebWork 2. After working independently for several years, the WebWork and Struts communities joined forces to create Struts 2. The 2.x framework is the best choice for teams who value elegant solutions to difficult problems.

Struts for Newbies

If you are new to development with Struts, here are some pointers on how to get started.

The framework "stands on the shoulders of giants". To use Struts well, it's important to have a good grasp of the fundamentals. Start by reviewing the Key Technologies primer, and studying any unfamiliar topics.

Next, branch to either the Struts 2 or Struts 1 documentation

The Struts 2 documentation is maintained as a wiki, but don't let that stop you from scrolling through. We have organized the wiki so that it can be read like a book, cover to cover. Just keep following the Next links.

[Starting Struts 2] Better yet, turn first to the Starting with Struts2 book. At 122 pages, it's a small book that doesn't try to replicate the online Struts 2 Documentation. Instead, the book is a perfect complement to the Struts 2 website. The "minibook" is available both as a free PDF and in conventional printed form.

For Struts 1, the most up-to-date book would be Struts: The Complete Reference. For newbies, Struts for Dummies is another good choice.

And don't hesitate to get involved. The best way to help with any open source project is to improve the documentation! There are mountains of Struts know-how posted to the user mailing list that could be sholved into the documentation. (How do you think this section started?)

Next: Releases

Google Site Search