mvc form example español docs spring jsp exception-handling

form - Cómo configurar spring HandlerExceptionResolver para manejar NullPointerException lanzado en jsp?



spring mvc español (2)

Desde un jsp se lanza una NullPointerException, por ejemplo, usando <% null.toString(); %> <% null.toString(); %>

Esta excepción no es manejada por HandlerExceptionResolver, sino que se envía al contenedor web (tomcat) y se convierte en un code 500 error .

¿Cómo puedo configurar Spring para obtener ese error en mi HandlerExceptionResolver?

Detalles:

  • Spring se puede configurar para manejar las excepciones lanzadas dentro de los Controladores, pero no las excepciones lanzadas por la vista.
  • Por supuesto, puedo resolver la NullPointerException, pero quiero diseñar una solución que resuelva elegantemente cualquier posible problema en la aplicación web para mostrar un mensaje fácil de usar al usuario.

No he trabajado con este fragmento del marco de primavera, pero los documentos dicen

"Interfaz para ser implementada por objetos que puede resolver excepciones lanzadas durante el mapeo o la ejecución del manejador, en el caso típico de las vistas de error. Los implementadores generalmente se registran como beans en el contexto de la aplicación.

Las vistas de error son análogas a las JSP de la página de error, pero se pueden usar con cualquier tipo de excepción, incluida cualquier excepción comprobada, con asignaciones potencialmente granulares para manipuladores específicos ".

así que me imagino que dado que NullPointer extiende RuntimeException, el framework no está diseñado para atraparlo. ¿Hay alguna razón por la que la (s) excepción (es) no se puedan manejar en el controlador directamente?


Ver la interfaz HandlerInterceptor en su lugar. Querrá el método afterCompletion. A continuación, puede interceptar la respuesta y luego establecer la información de encabezado adecuada para redirigir a una página web de error configurada en contenedor. Tiene razón en que Spring no tiene esta funcionalidad, esto tendrá que ser especificado por el web.xml que determina qué códigos se asignan a qué páginas.