Struts ファイルアップロードの罠

他でそのような情報をあまり見かけないため、それほど問題になっていないのかもしれませんが、前に Struts でファイルアップロードを扱ったときに発生した問題があります。
Struts では "multipart/form-data" なデータ*1が送られてきた場合に、リクエスプロセッサーがリクエストを Multipart 用の HttpServletRequest ラッパークラスで包むことで、ファイルやその他のリクエストパラメータを扱えるようにしています。
しかし、なぜかフォワード時にせっかくラップしているマルチパート用の HttpServletRequest ラッパーを脱がします。そのため、フォワード先のアクションなどではリクエストパラメータを読み出しても、何も読めません。
このため、ファイルアップロードが絡む処理の場合、Action を細かい単位にわけてフォワードによって繋いでいくことや、DispatchAction 等は使用できません。いまのところ Struts 1.2 でもこの状態のようです。

*1:ファイルのアップロードではフォームにて enctype="multipart/form-data"を指定します