2010-12-22 12 views
8

Encontré el siguiente tutorial JSP tricks to make templating easier? para usar JSP para crear plantillas de página (¿cómo he perdido esto durante tanto tiempo?!?). Sin embargo, después de hacer algunas búsquedas, no puedo entender cómo (o si es posible) verificar si se ha establecido un fragmento JSP.Comprueba si se ha configurado el fragmento JSP

Aquí está un ejemplo de lo que estoy tratando de hacer:

Tengo una plantilla llamada default.tag. Cuenta con 2 atributos JSP definidos de la siguiente manera:

<%@attribute name="title" fragment="true" required="true" %> 
<%@attribute name="heading" fragment="true" %> 

Luego, en el código de la página, que tienen el elemento <title> del conjunto de páginas a <jsp:invoke fragment="title" />. Luego, más tarde en la página, tengo el siguiente:

<c:choose> 
    <c:when test="${true}"> 
     <jsp:invoke fragment="heading" /> 
    </c:when> 
    <c:otherwise> 
     <jsp:invoke fragment="title" /> 
    </c:otherwise> 
</c:choose> 

Donde he <c:when test="${true}">, quiero ser capaz de comprobar si el fragmento heading se ha establecido con el fin de mostrarlo, pero si no, entonces por defecto el fragmento title.

Respuesta

11

Después de hacer un poco más de cosas, voy a responder mi propia pregunta. Resulta que el nombre dado al attribute también se convierte en una variable. Por lo tanto, puedo hacer lo siguiente:

<c:choose> 
    <c:when test="${not empty heading}"> 
     <jsp:invoke fragment="heading" /> 
    </c:when> 
    <c:otherwise> 
     <jsp:invoke fragment="title" /> 
    </c:otherwise> 
</c:choose> 

Eso era todo lo que tenía que hacer. ¡Parece que solo estaba tratando de hacerlo más difícil de lo necesario!

Cuestiones relacionadas