私があなたを正しく理解しているなら、あなたはこのようなことをしたいと思います:
<s:fielderror>[some reference to a content type error]</s:fielderror>
<s:fielderror>[some reference to a max size error]</s:fielderror>
それらを別々に/異なってレンダリングできるようにします。
フィールド名のみを取得するため、これは現在不可能です。
この方法では、1つのフィールドの複数のエラーを分離することはできません。<s:fielderror/>
さらに、のメソッドのソースコードを見ると、最初に最大サイズがチェックされ、そのチェックが失敗した場合はエラーが設定されます。最大サイズがすでに失敗している場合、コードは許可されたタイプのチェックを続行しません。acceptFile
FileUploadInterceptor
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 }
したがって、一度にこれらのエラーの1つだけを取得する必要があります。