Pergunta

Alguém pode explicar a ideia por trás das bibliotecas de tags personalizadas JSP e dos arquivos de tags JSP 2?

São apenas maneiras diferentes de fazer a mesma coisa?

Como eles se comparam?Quais são seus prós e contras e o que é melhor?

Foi útil?

Solução

Eu <3 arquivos de tag, mas esse desenvolvedor principal do JSTL está fumando crack se eles realmente disseram isso. Você não pode reescrever todas as tags da biblioteca de tags como tags de arquivo de tags, por um motivo muito importante: os arquivos de tag não podem fazer:

return aval_body_include;

Em outras palavras, os arquivos de tag têm apenas três opções para o conteúdo do corpo:

vazio: Sem conteúdo interno, ou seja.u003CsomeTag/>

sem script: Sem conteúdo interno do JSP, ou seja.u003CsomeTag>u003Cp> Olá Mundou003C/p>u003C/someTag> está ok, mas nãou003CsomeTag>u003Cp> < %= helloworld.toString () %>u003C/p>u003C/someTag>

TagDependent: Você pode ter conteúdo interno do JSP, mas ele não será processado como tal; Em vez disso, você tem que analisar/renderizá -lo como achar melhor

Mas com as tags de biblioteca de tags de estilo antigo, você pode ter:u003Cbody-content> JSPu003C/body-content> (no arquivo TLD) e depois "retornar avaliar_body_include;" do seu "DostartTag". Se você fizer isso, todas as suas diretivas JSP serão analisadas como se fossem uma parte normal da sua página, e sua tag simplesmente as envolve com o conteúdo apropriado.

Pessoalmente, minha regra geral é: Use arquivos de tag sempre que puder, ou seja. Sempre que você não precisa que as diretivas JSP trabalhem dentro da etiqueta, porque elas são um milhão de vezes mais limpa, mais fáceis para um não programa trabalhar, não exija um TLD (bem, se você os mantiver em um namespace separado de suas tags da biblioteca de tags).

Mas se você deseja o conteúdo JSP dentro da sua tag, sua única opção são tags da biblioteca de tags. Felizmente, um dia, o JSP People lançará uma maneira de fazer o processamento da diretiva JSP dentro de uma etiqueta de arquivo de tags e, em seguida, podemos abandonar as tags antigas baseadas em classe, mas até então, por favor, não tente fazer todas as tags com arquivos de tag , pois você será rapidamente reduzido a fazer tags personalizadas para todas as últimas partes da lógica (já que essa é a única maneira de fazer lógica sem usar as diretivas JSP).

Outras dicas

Problemas no desenvolvimento de tags personalizadas

As tags personalizadas tradicionais requerem habilidades de programação Java.

Todas as tags personalizadas, exceto as mais simples, não são fáceis de escrever.

O objetivo do JSP, em contraste com os servlets, é usar o idioma de marcação para gerenciar o layout com conteúdo dinâmico incorporado.

Ter que escrever um código Java complexo em tags personalizadas que se concentram no idioma da marcação está voltando.

Podemos querer usar o idioma de expressão JSP ou outras tags personalizadas ao implementar uma nova tag personalizada.

A solução Arquivos de tags JSP 2.0

  • Os arquivos de tags são um dos novos conceitos importantes introduzidos no JSP 2.0.
  • Os arquivos de tags permitem o desenvolvimento mais fácil e rápido de tags personalizadas.
  • Os arquivos de tags são desenvolvidos usando a sintaxe JSP normal, incluindo elementos de script, e usados ​​como qualquer outra tag personalizada.
  • Cada tag personalizada é um arquivo de tag separado.

Como os arquivos de tags diferem?

Escrito usando sintaxe JSP.

  • Nem todas as diretivas JSP são permitidas em um arquivo de tags.
  • Suportado por novas diretivas, ações e objetos implícitos específicos do arquivo de tags.

Identificado por um .marcação ou .tagx sufixo.

Destina-se a fornecer aos desenvolvedores de tags personalizadas facilidade de desenvolvimento sem perda de funcionalidade.

  • Um dos principais desenvolvedores do JSTL comentou que se tivesse tempo, ela reescreveria todo o JSTL usando arquivos de tags.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top