為了通用,從頭到尾都是utf-8.
而webwork中JakartaMultiPartRequest對于多編碼的處理并不如意.
apache的fileupload對于上傳文件名為中文的需要首先指定HeaderEncoding的編碼.
而webwork對于MultiPartRequest的request并沒有設(shè)置encoding編碼
詳見DispatcherUtils.java中 387行













如果沒有指定HeaderEncoding, 那么默認(rèn)采用request的encoding,如果request也沒有指定則采用系統(tǒng)的編碼.
這里并沒有指定request的encoding,往往導(dǎo)致上傳文件的名字亂碼.
自定義一個MultiPartRequest,設(shè)定一下就ok了
對于同時提交的表單域(form)參數(shù),由于在form中指定的enctype的關(guān)系,并不能直接用request.getParameter()才取, 只能通過FileItem.getString()的方式.這里也是上面的問題, 取的CharacterEncoding是request中的,由于webwork的原因不一致.同樣需要指定一下.
這樣form和上傳同時提交,參數(shù),附件名都正常了 :)