Qual é a diferença fundamental entre um JSP Taglib vs, incluindo uma página JSP?

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

  •  02-07-2019
  •  | 
  •  

Pergunta

Eu tenho vários elementos comuns (componentes), que gerarão algum HTML. Parece que minhas opções estão criando um taglib ou apenas colocando essa lógica em uma página JSP e incluindo o JSP.

qual é a diferença? Positivos vs negativos?

Foi útil?

Solução

Quando você usa um taglib, o contêiner normalmente:

  • Escreve e chama um método auxiliar de dentro de _jspservice
  • Dentro do método auxiliar, uma instância da classe de tags é criada e os métodos padrão são chamados (SetParent (), DostartTag (), Doendtag () etc ...)

Isso mantém todo o código dentro do mesmo recurso (a solicitação não é transmitida para outro componente) e, portanto, permite criar um comportamento de loop e acessar outros componentes na página atual.

Há despesas gerais na aprendizagem de bibliotecas de tags. Mas depois que você tiver sua primeira etiqueta funcionando, tudo está em declive. Além disso, o resultado final será mais fácil para os não desenvolvedores entenderem (assumindo que você escolha bons nomes para as tags).

Outras dicas

Taglibs permite que você defina (digitados) parâmetros que você pode documentar. Taglibs também podem estar cientes de sua localização na árvore de objetos, para que age de maneira diferente em um contexto diferente; ou ligue para um modelo específico repetidamente para criar construções de iteradores ou instrumentos.

Você está ciente de que as taglibs não precisam necessariamente ser escritas em Java? Há também um conceito chamado Tagfiles que permite escrever seu taglib no JSP; Muitas vezes, mais adequado para componentes planos ... bem perto de inclui.

Tags (que incluem o mecanismo de arquivo de tags JSP fácil de usar) suporta a invocação com parâmetros nomeados fortemente denominados.

Outra característica incrivelmente útil e surpreendentemente esquecida das tags JSP é o JspFragment Tipo de atributo. Isso permite que você passe um pedaço de código JSP, como um parâmetro, em uma tag a ser invocada, talvez repetidamente.

Inclui falta esses poderosos recursos de parametrização.

O Taglibs facilita a definição e a manuseio de parâmetros, mas há uma sobrecarga significativa para desenvolvê -los. Inclui são mais simples, mas menos poderosos. Muito depende do seu estilo.

Na minha experiência, as pessoas geralmente usam incluem porque não querem dedicar tempo para aprender a criar tablibs. Levando a uma bagunça justa. Enquanto sua equipe pequena e sua incluir não é muito complexa, não é tão ruim. Mas é um cheiro de código.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top