Struts makes it possible for JSP pages to externalize flow control. Rather
than specify physical links to various JSP pages within the JSP file, the
JSP file contains a Struts-defined logical URI. The Struts URI defines a
logical page request mapped to actions that may return different physical
JSP pages depending on the context of the HTTP request.
Struts simplifies the development of the actual JSP file content by limiting
it to user interface generation only. Java that would otherwise appear inside
the JSP files appears in separate servlet action classes that the JSP page
invokes at runtime.
Struts helps to separate the development roles into user interface designer
(HTML or tag library user) and JSP action-handler developer. For example,
one person can write JSP page using only HTML or suitable tag libraries,
while another person works independently to create the page action handling
classes in Java.
Struts externalizes JSP actions that would otherwise appear inside all
the JSP pages of your project into a single configuration file. This greatly
simplifies debugging and promotes reuse.
Struts consolidates String resources that would otherwise appear inside
all the JSP pages of your project (for example, form labels) into a single
file. This greatly simplifies the task of localizing JSP applications.