隨筆-42  評論-349  文章-4  trackbacks-0
          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 殘夢追月 閱讀(11660) 評論(5)  編輯  收藏 所屬分類: Struts

          評論:
          # re: Struts2中文件上傳錯誤提示信息the request was rejected because its size的解決辦法 2009-04-15 14:28 | 銀河使者
          不用這么麻煩,在資源文件中指定struts.messages.error.file.too.large就可以,如下

          struts.messages.error.file.too.large = “{1}”文件尺寸太大

          其中{1}會被替換成上傳的文件名。  回復  更多評論
            
          # re: Struts2中文件上傳錯誤提示信息the request was rejected because its size的解決辦法 2009-04-15 15:01 | 殘夢追月
          @銀河使者
          那樣不行的,原因這里有說明http://www.javaeye.com/topic/287800  回復  更多評論
            
          # re: Struts2中文件上傳錯誤提示信息the request was rejected because its size的解決辦法 2009-04-15 20:05 | 銀河使者
          @殘夢追月
          是的,我忘說了,struts.messages.error.file.too.large只在上傳文件大小在maximumSize和struts.multipart.maxSize之間時才會顯示這個值,其中maximumSize是文件上傳攔截器的參數。如果超過struts.multipart.maxSize大小,文件不會被上傳,在服務端和客戶端頁面都會拋出異常。
          如果要替換信息,還不如直接替換common-upload這個組件中的相關信息。

            回復  更多評論
            
          # re: Struts2中文件上傳錯誤提示信息the request was rejected because its size的解決辦法 2009-04-16 10:31 | 殘夢追月
          @銀河使者
          我這個就是替換這個信息的,不用重新編譯替換common-upload。  回復  更多評論
            
          # re: Struts2中文件上傳錯誤提示信息the request was rejected because its size的解決辦法 2009-10-04 17:29 | ldb
          說的不怎么地!并且實際上還不好使!  回復  更多評論
            
          主站蜘蛛池模板: 鹿邑县| 清远市| 绥江县| 东源县| 洪洞县| 巴林左旗| 固镇县| 宁化县| 赤峰市| 新晃| 凤冈县| 辽源市| 河曲县| 澄江县| 朝阳市| 阜新| 瑞昌市| 蒲城县| 慈溪市| 沙坪坝区| 颍上县| 罗江县| 临汾市| 都昌县| 合川市| 镇远县| 正宁县| 华池县| 宣武区| 页游| 迁西县| 南宫市| 马边| 吉木萨尔县| 阳山县| 安丘市| 庄河市| 太和县| 鹿泉市| 旬邑县| 潢川县|