I can't use the chinese input method, I think my input files have been destroied. so I will description my option in English:
You should undstand the multi-layer programming pattern, that's mean there are many layers so that we can build a loose-coupled system.
A classic multi-layer system could be divided into three layers: presentation, business and persistence. From the presentation layer, we could gather the user input and cache them input a structed-data, often it is an ActionForm. After we have got the user input---the ActionForm, we should go into writing business code to implement the business logic, You can write all the business logic code in your action's execute method, but for building a loose-coupled system, you'd better abstract another layer---buiness layer, and you should invoked business logic method in your action's execute method, so a question will raise up: what's the parameter/object we should pass to business logic method: the ActionForm or Another object? Here should be another object, often we call it DTO, Data Transfer Object, by DTO pattern, we can divide the business layer and the presentation layer, if we adjust the presentaion layer, the business layer will be affacted very little. that's why we should not "把表现层的数据结构暴露给业务层".
In the business layer, we often write some business logic to implement our business rules or buinsess flows, in the business logic codes, we must do some curd(create, update, read and delete) opers on the target database, for good pattern to deal with the database operation, we should finish these tasks by the persistent layer, we often use the DAO pattern here. so a question will raise up, how can we pass our data in business layer--the DTO---into our DAO methods. some time , some body may want use the Domain Object as the DTO object, this may easy your coding, but if you Domain has been changed in the future, this will affact the both persistence and business layers, so the better way is you should not use the domain object as the DTO.