В нескольких предыдущих проектах (все до Spring 3.0) у меня был один файл обработки ошибок jsp (обычно «message.jsp»), строка которого была похожа на следующую:
<spring:message code="exceptions.${exception.class.name}" text="${exception.message}"/>
Это позволило мне отобразить исключения на этой странице и разрешить некоторые локализованные сообщения об ошибках на основе типа исключения путем определения производной от SimpleMappingExceptionResolver:
<bean id="exceptionMapping" class="mycode.ui.resolvers.MyExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="java.lang.Exception">message</prop>
<prop key="javax.servlet.ServletException">message</prop>
<prop key="MyCustomException">message</prop>
<prop key="ApplicationAuthorizationException">login</prop>
<prop key="NotLoggedInException">login</prop>
</props>
</property>
</bean>
Это работало безупречно, пока я не попытался обновить систему до Spring 3 и Tomcat 7. Теперь, когда я использую этот код, я получаю следующую ошибку:
"${exception.class.name}" contains invalid expression(s): javax.el.ELException: The identifier [class] is not a valid Java identifier as required by section 1.19 of the EL specification
Есть идеи, что изменилось или как получить доступ к имени класса исключения (часть модели, возвращаемой Spring на страницу отображенной ошибки)?