Action#execute 内で
response.setContentType("application/x-octet-stream");
InputStream in = getInputStream();
OutputStream out = response.getOutputStream();
int data;
while((data = in.read()) != -1) out.write(data);
return null;
とすればよいらしい.
最後は null を返すのがミソ.
ちなみに,ダウンロードさせるファイルの名前を決めるには
response.setHeader("Content-Disposition", "inline; filename=\"filename.dat\"");
とすれば良いようだ.
参考
<http://www.janit.com/TechnoInf/Java/Struts1.1b3/userGuide/building_view.html#text_rendering>
<http://java-house.jp/ml/archive/j-h-b/027672.html>