When building web applications, many of the tasks to retrieve and process requests are quite repetitive. Like any good framework, Struts places most of this tedious functionality into utility classes, so it can be shared and used by many different components and applications. This separation of utilitarian functionality from regular application-specific functionality allows for greater reuse and less redundancy throughout the framework and within your applications.
The utility classes used by Struts are located in several packages. Many of the utility components were so generic and beneficial to so many applications that they have been moved out of the Struts framework and into the larger Jakarta Commons project. These packages include BeanUtils, Collections, and the Digester component mentioned in Chapter 3.
One of the Java packages that remain in the Struts package hierarchy
org.apache.struts.util. Everything from the
MessageResources class to
the new Validator component added to the core framework in 1.1) is
part of this package. This package contains many classes with
different purposes and responsibilities. Although the Struts
framework classes have strong dependencies on the utility classes,
utility classes generally should have dependencies only on other
utility classes and framework components that are lower in the food
chain. This is mostly true in the Struts framework, with a few minor
The utility classes ...