/**
* 当上传文件大小大于struts.multipart.maxSize提示时,
* 客户端会出现如下错误:
* "the request was rejected because its size (4501994)
* exceeds the configured maximum (2097152)"。
* 此信息在commons-fileupload.jar,
* org.apache.commons.fileupload.FileUploadBase源代码中第904行。
*
* 重写addActionError()以替换默认信息。
*/
@Override
public void addActionError(String anErrorMessage) {
//这里要先判断一下,是我们要替换的错误,才处理
if (anErrorMessage.startsWith("the request was rejected because its size")) {
//这些只是将原信息中的文件大小提取出来。
Matcher m = Pattern.compile("""d+").matcher(anErrorMessage);
String s1 = "";
if (m.find()) s1 = m.group();
String s2 = "";
if (m.find()) s2 = m.group();
//偷梁换柱,将信息替换掉
super.addActionError("你上传的文件(" + s1 + ")超过允许的大小(" + s2 + ")");
} else {//不是则不管它
super.addActionError(anErrorMessage);
}
}
http://wintys.iteye.com/blog/481615