tutorial tag lib example etiquetas español ejemplos codigo jsp import jstl file-exists

tag - ¿Cómo puede verificar si un archivo existe antes de incluirlo/importarlo en JSP?



jstl import (2)

Suponiendo que requestScope.importMe está esperando una ruta a un archivo JSP

<c:choose> <c:when test="${!empty requestScope.importMe && fileExists(requestScope.importMe) }"> <c:import url="${requestScope.importMe}" /> ... </c:choose>

¿Cómo puedo verificar si el archivo existe antes de intentar incluirlo para que no se produzca un error?

Prefiero una solución usando etiquetas JSTL.


@BalusC es bastante inteligente, y probablemente responde la pregunta.

Sin embargo, para completar, nada en el JSTL estándar hará lo que desea, pero ciertamente puede crear sus propias funciones EL que puede usar para hacer la verificación. Obviamente, necesitará escribir Java para ello, pero no está en línea dentro de sus JSP.

El tutorial de J2EE 1.4 tiene una section sobre cómo crear sus propias funciones EL.


Ponlo en una etiqueta c:catch . Atrapará cualquier Exception lanzada por ti.

<c:catch var="e"> <c:import url="${url}" /> </c:catch> <c:if test="${!empty e}"> Error: ${e.message} </c:if>

Sin embargo, debo admitir que no me gusta el enfoque c:catch . Se está abusando de excepciones para controlar el flujo. Si puede, más bien haga este trabajo en un servlet o JavaBean lugar de hacerlo con la ayuda del File#exists() (y ServletContext#getRealPath() ).