The Struts Framework is an open-source Web application framework used for creating Java Enterprise Edition Web applications quickly and efficiently. It makes use of and further extends the Java Servlet API to promote the model-view-controller (MVC) architecture.
The Struts Framework was originally developed by Craig McClanahan and was then given to the Apache Foundation in May of 2000 under the Apache Jakarta Project and became known as Jakarta Struts. It eventually became a top-level Apache project in 2005 and was eventually replaced by Struts 2, which was released in February 2007.
The Struts Framework made exclusive use of the MVC design paradigm, and its goal was to separate the "model," which is the application logic that communicates with the database, from the "view," which is the HTML pages presented to the client/user, and from the "controller," which is the instance that passes information between the model and the client's view. Struts already provides the controller, which is just a Java servlet known as ActionServlet that creates the templates to be displayed by the view. It is then the job of the Web application programmer to create the model code and, by extension, the central configuration file called "struts-config.xml," which binds together the model, view and controller.
As is the norm in applications that use the MVS model, requests from the client or view are sent to the controller as "Actions," which were previously defined in the configuration file. When the controller receives the request, it calls the corresponding Action class, which then interacts with the application-specific model code. As a result, the model returns an "ActionForward" string that informs the controller what output page to pass on to the view or client. The information that is passed between the view and the model is in the form of JavaBeans that is then looked up in a tag library for the view layer to read and write the Bean's contents without additional Java code; it acts as a translation table.