Me gustaría escribir una etiqueta JSP personalizada cuyo resultado incluya otras etiquetas JSP que también deberían ser evaluadas dinámicamente. Pero aparentemente todo lo que escribe mi subclase TagSupport
en pageContext.getOut()
va directamente al cliente sin ninguna evaluación adicional.¿Cómo puedo crear una etiqueta JSP personalizada que use otras etiquetas JSP?
Tengo la sensación de que esto debería ser muy simple, ya que parece ser una de las primeras cosas que querría usar etiquetas personalizadas para: encapsular y reutilizar otras etiquetas personalizadas, evitando la duplicación de código.
¿Cómo puedo hacer el siguiente código hace lo que obviamente quiere hacer ?:
public class MyTag extends TagSupport {
public int doStartTag() throws JspException {
try {
pageContext.getOut().println(
"The output from this tag includes other tags " +
"like <mypackage:myOtherTag>this one</mypackage:myOtherTag> " +
"which should themselves be evaluated and rendered."
)
} catch (IOException e) {
throw new JspException(e);
}
return SKIP_BODY;
}
}
Editar: Algunos antecedentes en mi caso en particular, si ayuda. Tengo una etiqueta personalizada <user>
que representa dinámicamente un nombre de usuario de una manera que es útil para mi aplicación (mouse-hover para el nombre, apellido, número de teléfono, etc.). Ahora estoy escribiendo otra etiqueta <comment>
para mostrar los comentarios de los usuarios, y me gustaría utilizar mi etiqueta <user>
existente para representar nombres de usuario en el resultado de la etiqueta <comment>
.
Esto debería ayudar: http://stackoverflow.com/ questions/2502282/custom-jsp-tag-how-do-i-get-the-body-of-the-tag –