2008-10-23 6 views
7

¿Alguien puede explicar la idea detrás de las bibliotecas de etiquetas personalizadas de JSP y los archivos de etiquetas JSP 2?JSP Custom Tag Library vs JSP2 Tag Files

¿Son solo formas diferentes de hacer lo mismo?

¿Cómo se comparan? ¿Cuáles son sus ventajas y desventajas, y cuál es mejor?

Respuesta

8

I < 3 archivos de etiquetas, pero ese desarrollador principal de JSTL está fumando crack si realmente dicen eso. NO PUEDE volver a escribir todas las etiquetas de la biblioteca de etiquetas como etiquetas de archivo de etiqueta, por una razón muy importante: los archivos de etiquetas no pueden:

return EVAL_BODY_INCLUDE;

En otras palabras, archivos de etiquetas sólo se tienen tres opciones para su cuerpo de contenido:

vacías: sin contenido interno, es decir. < someTag/>

sin script: no Contenido interno de JSP, es decir. <SOMETAG> <p> mundo hola </p > </SOMETAG > está bien, pero no <SOMETAG> <p> <% = helloWorld.toString()% > </p > </SOMETAG >

tagdependent: puede tener contenido interno de JSP, pero no se procesará como tal; en cambio hay que analizar/procesamiento que sin embargo le parezca

Pero con las antiguas etiquetas de la biblioteca de códigos de estilo, puede tener: < cuerpo de contenido > 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 sea posible, 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 son las etiquetas de la biblioteca de etiquetas. 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).

6

problemas para desarrollar etiquetas personalizadas

etiquetas personalizadas tradicionales requieren habilidades de programación Java .

Todas las etiquetas personalizadas, excepto las más simples, no son fáciles de escribir.

El propósito de JSP, a diferencia de los servlets, es utilizar el lenguaje de marcado para administrar el diseño con contenido dinámico incrustado.

Tener que escribir el código complejo de Java en etiquetas personalizadas que se centran en el lenguaje de marcado yendo hacia atrás.

Es posible que deseemos usar el lenguaje de expresión JSP o otras etiquetas personalizadas al implementar una nueva etiqueta personalizada .

La solución JSP 2.0 archivos de etiquetas

  • archivos de etiqueta son uno de los nuevos conceptos introducidos importantes con JSP 2.0.
  • Los archivos de etiquetas permiten un desarrollo más fácil y más 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 utilizando 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.

identificada por cualquiera de un sufijo .tag o .tagx.

Diseñado para proporcionar a los desarrolladores de etiquetas personalizadas la facilidad de desarrollo sin pérdida de funcionalidad.

  • Uno de los principales desarrolladores de JSTL ha comentado que si tuviera tiempo, ella reescribiría todos los archivos JSTL con etiquetas.