qual è la differenza fondamentale tra un jsp taglib e l'inclusione di una pagina jsp?

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

  •  02-07-2019
  •  | 
  •  

Domanda

Ho diversi elementi (componenti) comuni, che genereranno un po 'di HTML. sembra che le mie opzioni stiano creando un taglib, o semplicemente inserendo quella logica in una pagina jsp e includendo jsp.

qual è la differenza? positivi contro negativi?

È stato utile?

Soluzione

Quando si utilizza un taglib il contenitore in genere:

  • Scrive e chiama un metodo helper da _jspService
  • All'interno del metodo helper viene creata un'istanza della classe tag e vengono chiamati metodi standard (setParent (), doStartTag (), doEndTag () ecc ...)

Ciò mantiene tutto il codice all'interno della stessa risorsa (la richiesta non viene passata a un altro componente) e quindi consente di creare un comportamento in loop e accedere ad altri componenti nella pagina corrente.

C'è un sovraccarico nell'apprendimento delle librerie di tag. Ma una volta che il tuo primo tag funziona, è tutto in discesa. Inoltre, il risultato finale sarà più facile da comprendere per i non sviluppatori (supponendo che tu scelga nomi validi per i tag).

Altri suggerimenti

Taglibs ti consente di definire parametri (tipizzati) che puoi documentare. Inoltre i taglibs possono essere consapevoli della loro posizione nell'albero degli oggetti, quindi agire in modo diverso in un contesto diverso; oppure chiama ripetutamente un modello specifico per creare iteratori o costrutti di istruzioni.

Sei consapevole che i taglibs non devono necessariamente essere scritti in Java? C'è anche un concetto chiamato tagfile che ti permette di scrivere i tuoi taglib in JSP; spesso più adatto per componenti piatti ... abbastanza vicino alle inclusioni.

I tag (che includono il meccanismo di file di tag simile a JSP di facile utilizzo) supportano l'invocazione con parametri denominati fortemente tipizzati.

Un'altra caratteristica incredibilmente utile e sorprendentemente spesso trascurata dei tag JSP è il tipo di attributo JspFragment . Ciò consente di passare un pezzo di codice JSP, come parametro, in un tag da invocare, forse ripetutamente.

Include la mancanza di queste potenti funzionalità di parametrizzazione.

i taglibs semplificano la definizione e la gestione dei parametri, ma c'è un notevole sovraccarico per svilupparli. Include sono più semplici, ma meno potenti. Molto dipende dal tuo stile.

Nella mia esperienza, le persone generalmente usano solo include perché non vogliono impiegare il tempo per imparare a creare tablibs. Portando a un bel pasticcio. Finché la tua squadra è piccola e le tue inclusioni non sono troppo complesse, non è poi così male. Ma è un odore di codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top