Вопрос несколько старый, но у меня была та же проблема (и этот вопрос поднимается довольно высоко в Google ;-)). Итак, вот что я сделал:
Я добавил следующее в свое applicationContext.xml:
<bean id="defaultExceptionHandlerTemplate" class="org.springframework.web.portlet.handler.SimpleMappingExceptionResolver" abstract="true">
<property name="defaultErrorView" value="error/error-exception-default" />
<property name="exceptionMappings">
<props>
<prop key="org.springframework.web.portlet.bind.MissingPortletRequestParameterException">
error/error-missing-parameter
</prop>
</props>
</property>
</bean>
<bean id="defaultExceptionHandler" parent="defaultExceptionHandlerTemplate" />
error / error-missing-параметр - это имя представления, которое должно быть отображено. Spring автоматически публикует исключение в представлении, по умолчанию вызывая переменную «исключение». На типичной настройке JSP, в которой у меня есть параметр view error / error-отсутствующий параметр, отображается в /WEB-INF/jsp/error/error-missing-parameter.jsp в зависимости от конфигурации преобразователя представления. Этот файл может выглядеть, например, так:
<jsp:root version="2.0"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="urn:jsptld:http://java.sun.com/jsp/jstl/core">
<h1>Missing parameter</h1>
<p>Error: The parameter '<c:out value="${exception.parameterName}" />' of type '<c:out value="${exception.parameterType}" />' is missing.</p>
</jsp:root>
Свойство defaultErrorView отображается на представление в случае, если ни одно из исключенийMappings ниже не соответствует. Если вам это не нужно, вы можете пропустить это свойство.