Как предотвратить появление необработанной информации об исключениях в JSP в приложении Spring MVC 3.0? - PullRequest
0 голосов
/ 07 апреля 2011

При тестировании приложения Spring я загрузил файл, размер которого превысил максимально допустимый размер, настроенный в приложении.

Следовательно, в JSP появилось следующее сообщение, видимое для пользователя:

Error
Exception: org.springframework.web.multipart.MultipartException: 
something went wrong here; nested exception is 
org.apache.commons.fileupload.FileUploadBase$FileUploadIOException

Что мне нужно изменить, чтобы предоставить пользователю более удобное для пользователя сообщение в JSP?

Например:

Uploaded file exceeds maximum allowed size of 25MB.

Ответы [ 3 ]

1 голос
/ 07 апреля 2011

Используйте HandlerExceptionResolver .

public class MyExceptionResolver implements HandlerExceptionResolver{
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex){
        return new ModelAndView("jsp_to_show_error_message.jsp").
                 addObject("message", ex.getMessage());
    }
}

Создайте новый jsp jsp_to_show_error_message.jsp и поместите ${message} где-нибудь в нем.Настройте MyExceptionResolver в своем XML.Если вы используете контроллер на основе аннотаций, прочитайте здесь .

1 голос
/ 07 апреля 2011

Я не делал Spring MVC раньше, но я думаю, что Spring может сделать это .

Использовать ресурсы сообщений (ResourceBundle).Вам нужно будет перехватить исключительную ситуацию и создать страницу ошибки, на которой может отображаться сообщение об ошибке.

Spring использует ResourceBundleMessageSource для ресурсов сообщений.Этот пример (хотя и слишком простой) показывает, как его настроить и использовать.

0 голосов
/ 07 апреля 2011

Оставляя Spring вне рассмотрения, Servlet API предлагает возможность прикреплять пользовательские страницы ошибок к определенным исключениям. В этом конкретном примере необходимо добавить следующую запись в web.xml.

<error-page>
    <exception-type>org.springframework.web.multipart.MultipartException</exception-type>
    <location>errors/upload.jsp</location>
</error-page>

Таким образом, вы можете предоставить полностью настраиваемую страницу ошибки в макете веб-страницы по умолчанию в формате errors/upload.jsp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...