2009-07-09 11 views
5

que tienen un servlet, que hace algo de comprobación de errores y si algo está mal que normalmente va a hacer esto: ¿Cuál es la forma más sencilla de mostrar httpServletResponse.sendError (403, "Mi Mensaje") Estado de JSTL

response.sendError(403, "My message") 
return; 

I no quiero lanzar una excepción desde el servlet - porque me gustaría cumplir con los códigos de estado HTTP.

En el web.xml que han configurado lo siguiente:

<error-page> 
    <error-code>403</error-code> 
    <location>/failure.jsp</location> 
</error-page> 

En el failure.jsp he declarado uso de JSTL y me gustaría conseguir los mensajes de error que aparecen. Sé que puedo hacer lo siguiente en scriptles:

 
<%= request.getAttribute("javax.servlet.error.message") %> 

Pero me gustaría utilizar JSTL con un poco de c: si la cláusula así que si puedo soltar con scriptles, esto sería apreciada.

¿Cómo puedo obtener fácilmente los valores de la declaración sendError en el servlet en la página de error utilizando JSTL?

Respuesta

10

El scriptlet:

<%= request.getAttribute("javax.servlet.error.message") %> 

se puede traducir a la siguiente EL:

${requestScope['javax.servlet.error.message']} 

El corsé notación bean['foo.bar'] es muy útil si tiene puntos en Map o nombres clave de ámbito, porque bean.foo.bar obviamente no devuelve el Map o valor de ámbito deseado.

0

Declare una etiqueta JSTL con un atributo "var", que tendrá un objeto de excepción (si se produce un error entre el cuerpo de las etiquetas) al final de la etiqueta, que tienen propiedades stackTrace y message.

<c:catch var="myException"> 
<%int x=10/0; %> 
</c:catch> 

<c:if test="${myException !=null}"> 
There was an exception: ${myException.message} 
</c:if> 
+1

Esto no funcionará. La página JSP no capta ninguna excepción: está configurada como una página de error en web.xml. En este escenario, la excepción es un atributo en la solicitud, pero la clave es bastante incómoda y no estoy seguro de cómo hacer referencia a ella desde JSTL. – tronda

Cuestiones relacionadas