This week's book giveaway is in the Other Open Source APIs forum. We're giving away four copies of Storm Applied and have Sean Allen, Peter Pathirana & Matthew Jankowski on-line! See this thread for details.
It makes good design sense to separate your business logic from the struts layer, which is only handling http requests from a browser. What if you wanted to execute the same business logic originating from a wireless device or web service for instance?
Your action classes should call your business logic/model - possibly through a business delegate, but your business model should not depend on http.
A Struts Action class is a controller component, not a model component. The primary controller object is the Struts ActionServlet, but the Action is still part of the controller space. Its function is to mediate between the model and the view. As Paul indicated, your business logic should go in separate objects that are then called by the Action.