2008-09-29 17 views

Respuesta

4

Cuando se utiliza un taglib el contenedor normalmente:

  • escribe y llama a un método de ayuda desde dentro _jspService
  • Dentro del método de ayuda una instancia de la clase de etiqueta se crea y se denominan métodos estándar (setParent(), doStartTag(), doEndTag(), etc ...)

Esto mantiene todo el código dentro del mismo recurso (la solicitud no sea traspasada a otro componente) y por lo tanto le permite construir en bucle comportamiento y acceder a otros componentes en t la página actual.

Hay una sobrecarga en el aprendizaje de bibliotecas de etiquetas. Pero una vez que tienes tu primera etiqueta trabajando todo es cuesta abajo. Además, el resultado final será más fácil de entender para los no desarrolladores (suponiendo que elija buenos nombres para las etiquetas).

+0

tengo un archivo jsp, e incluye otro jsp ... esencialmente, hay dos solicitudes hechas, una para el jsp principal y la segunda para el include. aunque si uso un taglib/tagfile dentro de mi jsp, solo hay una solicitud, y se llama al taglib/tagfile desde la misma solicitud dentro de _jspService? – joshjdevl

+0

Estás pensando en un delantero. Incluye pasar dentro de las mismas solicitudes. – sblundy

-2

taglibs hacen que sea más fácil definir y manejar parámetros, pero hay una sobrecarga significativa para desarrollarlos. Incluye son más simples, pero menos poderosos. Mucho depende de tu estilo.

En mi experiencia, las personas generalmente solo usan incluye porque no quieren tomarse el tiempo para aprender a crear tablibs. Llevando a un buen lío. Siempre que su equipo sea pequeño y su incluye no demasiado complejo, no es tan malo. Pero es un olor a código.

6

Taglibs le permite definir parámetros (mecanografiados) que puede documentar. También los taglibs pueden conocer su ubicación en el árbol de objetos para actuar de manera diferente en un contexto diferente; o llamar a una plantilla específica una y otra vez para crear iteradores o construcciones de declaraciones.

¿Sabía que los taglibs no tienen que estar necesariamente escritos en Java? También hay un concepto llamado tagfiles que le permite escribir su taglib en JSP; a menudo más adecuado para componentes planos ... bastante cerca de incluir.

+0

sí, bueno, estaba desarrollando tagfiles ahora, aunque me confundí cuál es la diferencia con un jsp. heres un escenario, tengo que hacer una inyección de dependencia, por lo que estaba buscando un jspinit para un archivo de etiqueta, aunque parece solo para jsps? – joshjdevl

+0

¿Qué quiere decir exactamente 'inyección de dependencia' en este contexto? ¿Estás trabajando en una arquitectura basada en Model2 o componente? ¿Puedes dar un caso de lo que quieres lograr? – p3t0r

+0

component based.each tagfile es su propio componente indep. tagfile llama a un bean de servicio administrado en primavera, ex service1 obtiene una lista de todos los clientes. Quiero que este archivo de etiqueta maneje el bean de servicio, llame al método y luego formatee el resultado en una buena tabla. este archivo de etiqueta está incluido en el jsp. – joshjdevl

1

Las etiquetas (que incluyen el mecanismo de archivo de etiquetas JSP fácil de usar) admiten la invocación con parámetros nombrados fuertemente tipados.

Otra característica increíblemente útil y sorprendentemente a menudo olvidada de las etiquetas JSP es el tipo de atributo JspFragment. Esto le permite pasar un trozo de código JSP, como parámetro, a una etiqueta que se invocará, tal vez repetidamente.

Incluye la falta de estas potentes funciones de parametrización.

+0

interesante, ¿tiene un buen enlace a un ejemplo para JspFragment? – joshjdevl

Cuestiones relacionadas