The Apache Struts web framework is a free open-source solution 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:
The framework's architecture and tags are buzzword compliant. Struts works well with conventional REST applications and with nouveau technologies like SOAP and AJAX.
I really loved Struts 1.x and 2.x in the mid 2000s.
But now I find it too complex/old, if I compare it to Spring Web, Play! or even JSF 2.
The framework is simple and easy to understand and to use. Just enough magic, not too much surprises. The documentation however could be better and makes the learning of the framework harder than it should be for novices.
I used it for a while. In fact, I think it great at its time. But for now, Spring MVC with its sibling frameworks make things more easier. I am waiting for next generation of Struts.