Struts2在上傳文件時如果文件超過設定的大小就會將“the request was rejected because its size (XXXX) exceeds the configured maximum (XXXX)”類似的錯誤添加到Action中,也不做任何的國際化處理,但是有時這并不是我們想要的錯誤信息,我們需要把它替換成我們自己的錯誤提示,比如“你上傳的文件(XXX)超過允許的大小(XXX)”,那么如何做呢?
???????? 這個問題netfork在
http://www.javaeye.com/topic/287800分析的很詳細,他給出了幾種解決辦法。參照他的分析,我們還可以這樣做:
這個錯誤是commons-fileupload組件在上傳的文件超過我們設定的大小的時候拋出的一個異常信息。fileUpload攔截器在捕捉到commons-fileupload的異常信息后會調用Action的addActionError()方法將他們添加到ActionError中。intercept()方法中的該部分代碼如下:
???????? 所以,要將該信息替換成我們自己的,那么我們可以覆蓋掉ActionSupport的addActionError()方法,在該方法中 “偷梁換柱”即可。假設我們有個文件上傳的Action類FileUpload,它繼承自ActionSupport類,其關鍵代碼則如下:
By:殘夢追月
posted on 2009-04-15 11:41
殘夢追月 閱讀(11657)
評論(5) 編輯 收藏 所屬分類:
Struts