Как отобразить превышение предельного размера для элемента управления FileInput Tomahawk - PullRequest
5 голосов
/ 10 мая 2011

Я использую <t:inputFileUpload /> элемент управления библиотеки Томагавк с JSF1.1.Мои фильтры расширения и форма установлены соответственно, чтобы разрешить загрузку файла размером до 3 МБ.Но проблема в том, что если размер файла превышает 3 МБ, форма не отправляется, а отображается снова, и я не могу установить для нее значение <h:message>.

Итак, как мне сообщить пользователю, что загрузка файла не удалась.

Я пытался сохранить <h:messages globalOnly="true", но ничего не отображается.

Iследили за публикацией в блоге BalusC для настройки своих загрузок.

1 Ответ

4 голосов
/ 10 мая 2011

Сведения об исключении доступны в EL

#{requestScope['org.apache.myfaces.custom.fileupload.exception']}

Таким образом, добавление следующего компонента на страницу должно сделать это

<h:outputText value="File upload failed! #{requestScope['org.apache.myfaces.custom.fileupload.exception']}" 
    styleClass="error" rendered="#{not empty requestScope['org.apache.myfaces.custom.fileupload.exception']}" />

В конечном итоге вы можете создать1008 *, что превращает его в FacesMessage.Выполните следующие действия в beforePhase() из PhaseId.RENDER_RESPONSE

Object fileuploadException = requestMap.get("org.apache.myfaces.custom.fileupload.exception");
if (fileuploadException != null) {
    facesContext.addMessage(null, new FacesMessage("File upload failed! " + fileuploadException));
}
...