This week's book giveaway is in the OCPJP forum. We're giving away four copies of OCA/OCP Java SE 7 Programmer I & II Study Guide and have Kathy Sierra & Bert Bates on-line! See this thread for details.
The "official" name for this type of object is Transfer Object. Here is a link that explains about this pattern.
In Struts, the Transfer Object is used to transfer data between Model objects, or business objects and the view. Some have tried to make the ActionForm a transfer object, but this is not a good idea. You want your model objects to be completely free of any outside dependencies, and if you use a Struts ActionForm in this way, you make your model dependent on Struts.
The best practice is to create a POJO (Plain Old Java Object) that has no outside dependencies to use as a Transfer Object.
Here's an example:
1-User requests data for a single customer: 2-Request is routed to Action Class 3-Action instantiated a CustomerDAO object to get the data. 4-You have previously coded a CustomerDTO class to be used to transfer customer data to and from the model, and have coded a getCutomer() method on your CustomerDAO object that returns an instance of the CutstomerDTO object. 5- The Action class now has a reference to the instance of CustomerDTO that was returned. It now copies the data from the CustomerDTO into the ActionForm for the page you want to display. The BeanUtils.copyProperties() class can be useful for doing this.