Доступ к exception.class.name весной: тег сообщения, когда using SimpleMappingExceptionResolver

В нескольких предыдущих проектах (все до Spring 3.0) у меня был единственный файл jsp обработки ошибок (обычно "message.jsp"), в котором была строка, подобная следующей:

<spring:message code="exceptions.${exception.class.name}" text="${exception.message}"/>

This позволил мне сопоставить исключения на этой странице и разрешить определенные локализованные сообщения об ошибках на основе типа исключения, определив производную от 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 на сопоставленную страницу ошибки)?

6
задан pconrey 6 June 2011 в 21:05
поделиться