如果我理解正確的話,我覺得你想要做這樣的事情:
<s:fielderror>[some reference to a content type error]</s:fielderror>
<s:fielderror>[some reference to a max size error]</s:fielderror>
,這樣就可以單獨/使它們不同。
這是目前不可能因爲<s:fielderror/>
只需要字段名稱。
您無法以這種方式分隔一個字段的多個錯誤。
此外,查看FileUploadInterceptor
中acceptFile
方法的source code,將首先檢查最大大小,如果檢查失敗,則會設置錯誤。如果最大尺寸已經失敗,代碼將不會繼續檢查允許的類型。
353 } else if (maximumSize != null && maximumSize < file.length()) {
354 String errMsg = getTextMessage(action, "struts.messages.error.file.too.large", new Object[]{inputName, filename, file.getName(), "" + file.length()}, locale);
355 if (validation != null) {
356 validation.addFieldError(inputName, errMsg);
357 }
358
359 LOG.warn(errMsg);
360 } else if ((!allowedTypesSet.isEmpty()) && (!containsItem(allowedTypesSet, contentType))) {
361 String errMsg = getTextMessage(action, "struts.messages.error.content.type.not.allowed", new Object[]{inputName, filename, file.getName(), contentType}, locale);
362 if (validation != null) {
363 validation.addFieldError(inputName, errMsg);
364 }
365
366 LOG.warn(errMsg);
367 }
因此,您應該一次只能得到這些錯誤之一。
來源
2012-07-12 14:44:16
nmc
感謝您的回覆,抱歉,如果我有我的問題困惑,我的查詢是什麼應該是關鍵從特定的錯誤,從你的代碼,什麼應該是確切的關鍵代碼'[[一些內容類型的引用錯誤]' – 2012-07-12 15:26:37
@PramodCA我想告訴你的是,有沒有這樣的關鍵**只是內容類型錯誤或只是最大尺寸錯誤。你的唯一選擇是' myFileFieldName ' –
nmc
2012-07-12 15:30:56
我的文件名是pramod_resume.doc,比我編碼爲' pramod_resume.doc ',即使是這樣,錯誤也沒有顯示。 –
2012-07-12 15:40:45