基本的にはid:matobat:20050211:p5とあまり変わっていませんがいくつか変更があるようです。
なおファイルアップロード実装はJakartaしか試していないのでご注意ください。
ContentTypeとファイル名の取得
MultiPartRequestWrapperを使わなくてもファイルのContentTypeやファイル名が取得できるようになっていました。
それぞれファイルのプロパティ名の後ろにContentType,FileNameを付けます
サンプル(getter,setter省略): public class FileUploadAction extends ActionSupport { private File file; private String fileFileName; private String fileContentType; }
日本語パラメータの問題
なぜかmultipart/form-dataなリクエストだと、FilterDispatcherでServletRequest#setCharactorEncoding()が呼ばれないように変更されています。
そのためマルチバイトのパラメータが全部化けます。(ファイル以外の部分も)
なのでFilterDispatcherの前でServletRequest#setCharactorEncoding()を実行するFilterを呼ぶか、
JakartaMultipartRequestを拡張してServletRequest#setCharactorEncoding()を呼ぶ必要があります。
なおパラメータの解析はInterceptorよりも前の処理なのでInterceptorでは実装できません。