隨筆-42  評(píng)論-349  文章-4  trackbacks-0
          Struts2在上傳文件時(shí)如果文件超過(guò)設(shè)定的大小就會(huì)將“the request was rejected because its size (XXXX) exceeds the configured maximum (XXXX)”類(lèi)似的錯(cuò)誤添加到Action中,也不做任何的國(guó)際化處理,但是有時(shí)這并不是我們想要的錯(cuò)誤信息,我們需要把它替換成我們自己的錯(cuò)誤提示,比如“你上傳的文件(XXX)超過(guò)允許的大?。╔XX)”,那么如何做呢?

          ???????? 這個(gè)問(wèn)題netfork在http://www.javaeye.com/topic/287800分析的很詳細(xì),他給出了幾種解決辦法。參照他的分析,我們還可以這樣做:
          這個(gè)錯(cuò)誤是commons-fileupload組件在上傳的文件超過(guò)我們?cè)O(shè)定的大小的時(shí)候拋出的一個(gè)異常信息。fileUpload攔截器在捕捉到commons-fileupload的異常信息后會(huì)調(diào)用Action的addActionError()方法將他們添加到ActionError中。intercept()方法中的該部分代碼如下:


          ???????? 所以,要將該信息替換成我們自己的,那么我們可以覆蓋掉ActionSupport的addActionError()方法,在該方法中 “偷梁換柱”即可。假設(shè)我們有個(gè)文件上傳的Action類(lèi)FileUpload,它繼承自ActionSupport類(lèi),其關(guān)鍵代碼則如下:




          By:殘夢(mèng)追月
          posted on 2009-04-15 11:41 殘夢(mèng)追月 閱讀(11659) 評(píng)論(5)  編輯  收藏 所屬分類(lèi): Struts

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

            回復(fù)  更多評(píng)論
            
          # re: Struts2中文件上傳錯(cuò)誤提示信息the request was rejected because its size的解決辦法 2009-04-16 10:31 | 殘夢(mèng)追月
          @銀河使者
          我這個(gè)就是替換這個(gè)信息的,不用重新編譯替換common-upload。  回復(fù)  更多評(píng)論
            
          # re: Struts2中文件上傳錯(cuò)誤提示信息the request was rejected because its size的解決辦法 2009-10-04 17:29 | ldb
          說(shuō)的不怎么地!并且實(shí)際上還不好使!  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 淮滨县| 娄底市| 陇西县| 纳雍县| 焦作市| 仁化县| 左贡县| 普兰县| 淳化县| 黔东| 临夏市| 茶陵县| 永定县| 安达市| 中超| 雷波县| 丽水市| 威信县| 株洲县| 栾城县| 栾川县| 山阳县| 延津县| 青川县| 吴桥县| 临海市| 华宁县| 都兰县| 浦东新区| 台前县| 百色市| 宁蒗| 和平区| 土默特右旗| 鄄城县| 云阳县| 淮阳县| 宜兴市| 广河县| 新丰县| 靖江市|