¿Cuál es la diferencia fundamental entre un jsp taglib frente a incluir una página jsp?

StackOverflow https://stackoverflow.com/questions/149777

  •  02-07-2019
  •  | 
  •  

Pregunta

Tengo varios elementos comunes (componentes), que generarán algunos html. parece que mis opciones son crear un taglib, o simplemente poner esa lógica en una página jsp e incluir el jsp.

¿Cuál es la diferencia? positivos vs negativos?

¿Fue útil?

Solución

Cuando usa un taglib, el contenedor normalmente:

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

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

Hay gastos generales en el aprendizaje de las bibliotecas de etiquetas. Pero una vez que tienes tu primera etiqueta funcionando, todo 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).

Otros consejos

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

¿Sabe que los taglibs no necesariamente tienen que estar 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 cercano a los incluidos.

Las etiquetas (que incluyen el mecanismo de archivo de etiqueta similar a JSP fácil de usar) admiten la invocación con parámetros con un nombre fuertemente tipado.

Otra característica increíblemente útil y sorprendentemente a menudo pasada por alto de las etiquetas JSP es el tipo de atributo JspFragment . Esto le permite pasar una porción 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.

taglibs hace 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 potentes. 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. Conduciendo a un lío justo. Mientras tu equipo sea pequeño y tu equipo no sea demasiado complejo, no está tan mal. Pero es un olor a código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top