You can create an Action that will send data to the outputStream of the HttpServletResponse object. There is an example of this in the struts-examples.war file that comes with the V1.2 download. Check out the class org.apache.struts.webapp.exercise.ImageAction.
I used part of the code in the ImageAction example, and set the content type to "application/octet-stream". I want the browser to open the save dialog after clicking on the link, but struts has already used the response. So, how can I do this in struts?