, 난 당신이 이런 식으로 뭔가를하고 싶은 생각 :
<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
답장을 보내 주셔서 감사합니다. 내 질문에 혼란 스러울 경우 귀하의 코드에서 특정 오류를 가져 오기위한 키가되어야합니다. '[콘텐츠 유형에 대한 일부 참고 사항] 오류]' –
@PramodCA 내가 말하고자하는 것은 콘텐츠 유형 오류 또는 최대 크기 오류에 대해 ** 키가 ** 없다는 것입니다. 유일한 옵션은 ' myFileFieldName ' –
nmc
내 fileName은 ' pramod_resume.doc '로 코딩 된 것보다 pramod_resume.doc이므로 오류가 표시되지 않았습니다. –