tag - Biblioteca de etiquetas personalizadas JSP vs archivos de etiquetas JSP2
taglib uri (2)
Problemas al desarrollar etiquetas personalizadas
Las etiquetas personalizadas tradicionales requieren habilidades de programación Java.
Todas menos las etiquetas personalizadas más simples no son fáciles de escribir.
El propósito de JSP, a diferencia de los servlets, es utilizar lenguaje de marcado para administrar el diseño con contenido dinámico incorporado.
Tener que escribir código complejo de Java en etiquetas personalizadas que se centran en el lenguaje de marcado va hacia atrás.
Es posible que deseemos utilizar el lenguaje de expresión JSP u otras etiquetas personalizadas al implementar una nueva etiqueta personalizada.
La solución JSP 2.0 Tag Files
- Los archivos de etiquetas son uno de los nuevos conceptos importantes que se introdujeron con JSP 2.0.
- Los archivos de etiquetas permiten un desarrollo más fácil y rápido de las etiquetas personalizadas.
- Los archivos de etiquetas se desarrollan utilizando la sintaxis JSP normal, incluidos los elementos de scripting, y se utilizan como cualquier otra etiqueta personalizada.
- Cada etiqueta personalizada es un archivo de etiqueta separado.
¿Cómo difieren los archivos de etiquetas?
Escrito usando la sintaxis JSP.
- No todas las directivas JSP están permitidas en un archivo de etiqueta.
- Compatible con nuevas directivas específicas de archivos de etiquetas, acciones y objetos implícitos.
Identificado por un sufijo .tag o .tagx .
Destinado a proporcionar a los desarrolladores de etiquetas personalizadas la facilidad de desarrollo sin pérdida de funcionalidad.
- Uno de los principales desarrolladores de JSTL comentó que, si tuviera tiempo, volvería a escribir todo JSTL utilizando archivos de etiquetas.
¿Alguien puede explicar la idea detrás de las bibliotecas de etiquetas personalizadas de JSP y los archivos de etiquetas JSP 2?
¿Son solo formas diferentes de hacer lo mismo?
¿Cómo se comparan? ¿Cuáles son sus ventajas y desventajas, y cuál es mejor?
Los archivos de etiquetas I <3, pero ese desarrollador líder de JSTL está fumando crack si realmente lo dicen. NO PUEDE volver a escribir todas las etiquetas de la biblioteca de etiquetas como etiquetas de archivos de etiquetas, por una razón muy importante: los archivos de etiquetas no pueden:
devolver EVAL_BODY_INCLUDE;
En otras palabras, los archivos de etiquetas solo tienen tres opciones para su contenido corporal:
vacío: sin contenido interno, es decir. <someTag />
sin script: sin contenido interno JSP, es decir. <someTag> <p> hello world </ p> </ someTag> está bien, pero no <someTag> <p> <% = helloWorld.toString ()%> </ p> </ someTag>
etiqueta dependiente: puede tener contenido interno JSP, pero no se procesará como tal; en cambio, debes analizarlo / renderizarlo como mejor te parezca
Pero con las etiquetas de la biblioteca de etiquetas de estilo antiguo, puede tener: <body-content> JSP </ body-content> (en el archivo tld) y luego "return EVAL_BODY_INCLUDE;" de su "doStartTag". Si hace esto, todas sus directivas JSP serán analizadas como si fueran una parte normal de su página, y su etiqueta simplemente las envuelve con el contenido apropiado.
Personalmente, mi regla de oro es: usar archivos de etiquetas siempre que puedas, es decir. siempre que no necesite directivas JSP para trabajar dentro de la etiqueta, porque son un millón de veces más limpias, más fáciles de usar para un usuario que no es un programador, no requieren un tld (bueno, si las mantiene en un espacio de nombres separado de sus etiquetas de la biblioteca de etiquetas).
Pero si desea contenido JSP dentro de su etiqueta, su única opción es etiquetar las etiquetas de la biblioteca. Con suerte, algún día, la gente de JSP lanzará una forma de hacer el procesamiento de la directiva JSP dentro de una etiqueta de archivo de etiqueta, y entonces realmente podemos abandonar las viejas etiquetas basadas en clase, pero hasta entonces no intenten hacer todas las etiquetas con los archivos de etiqueta , ya que rápidamente se verá reducido a crear etiquetas personalizadas para cada pieza lógica (ya que esa es la única forma de hacer lógica sin utilizar directivas JSP).