Domanda

Qualcuno può spiegare l'idea alla base delle librerie di tag personalizzate JSP e dei file di tag JSP 2?

Sono solo modi diversi di fare la stessa cosa?

Come si confrontano? Quali sono i loro pro e contro e quale è meglio?

È stato utile?

Soluzione

I < 3 file di tag, ma lo sviluppatore principale di JSTL sta fumando crack se lo dicessero davvero. NON PUOI riscrivere tutti i tag della libreria di tag come tag del file di tag, per un motivo molto importante: i file di tag non possono fare:

restituisce EVAL_BODY_INCLUDE;

In altre parole, i file tag hanno solo tre opzioni per il loro contenuto corporeo:

vuoto: nessun contenuto interno, ad es. lt &; someTag / gt &;

senza script: nessun contenuto interno JSP, ad es. < someTag > < p > ciao mondo < / p > < / someTag > va bene, ma non < someTag > < p > <% = helloWorld.toString ()% > < / p gt &; lt &; / someTag gt &;

dipendente dal tag: puoi avere contenuti interni JSP, ma non verranno elaborati come tali; invece devi analizzarlo / renderlo come ritieni opportuno

Ma con i tag della libreria di tag vecchio stile, puoi avere: & Lt; body-content gt &; JSP lt &; & / Body-content gt; (nel file tld) e quindi " return EVAL_BODY_INCLUDE; " dal tuo " doStartTag " ;. Se lo fai, tutte le tue direttive JSP verranno analizzate come se fossero una parte normale della tua pagina e il tuo tag le avvolge semplicemente con il contenuto appropriato.

Personalmente, la mia regola empirica è: utilizzare i file tag ogni volta che è possibile, ad es. ogni volta che non hai bisogno delle direttive JSP per funzionare all'interno del tag, perché sono un milione di volte più pulite, più facili da usare per un non programmatore, non richiedono un tld (beh, se le tieni in uno spazio dei nomi separato da i tag della libreria dei tag).

Ma se desideri contenuti JSP all'interno del tuo tag, l'unica opzione sono i tag della libreria di tag. Speriamo che un giorno le persone JSP rilascino un modo per elaborare la direttiva JSP all'interno di un tag file tag, e quindi possiamo davvero abbandonare i vecchi tag basati su classi, ma fino ad allora per favore non provare a fare tutti i tag con file tag , poiché sarai rapidamente ridotto a creare tag personalizzati per ogni ultimo pezzo di logica (poiché questo è l'unico modo per fare la logica senza usare le direttive JSP).

Altri suggerimenti

Problemi nello sviluppo di tag personalizzati

I tag personalizzati tradizionali richiedono la programmazione Java competenze.

Tutti i tag personalizzati, tranne i più semplici, non sono facili da scrivere.

Lo scopo di JSP, a differenza dei servlet, è quello di utilizzare linguaggio di markup per gestire il layout con incorporato contenuto dinamico.

Dover scrivere codice Java complesso nei tag personalizzati che si concentrano sul linguaggio di markup sta andando all'indietro.

Potremmo voler usare il linguaggio delle espressioni JSP o altri tag personalizzati durante l'implementazione di una nuova personalizzazione tag.

La soluzione   File tag JSP 2.0

  • I file di tag sono uno dei nuovi importanti concetti introdotti con JSP 2.0.
  • I file dei tag consentono uno sviluppo più semplice e rapido dei tag personalizzati.
  • I file dei tag vengono sviluppati utilizzando la normale sintassi JSP, inclusi gli elementi di scripting e utilizzati proprio come qualsiasi altro tag personalizzato.
  • Ogni tag personalizzato è un file tag separato.

In che modo differiscono i file dei tag?

Scritto usando la sintassi JSP.

  • Non tutte le direttive JSP sono consentite in un file tag.
  • Supportato da nuove direttive specifiche per file di tag, azioni e oggetti impliciti.

Identificato da un suffisso .tag o .tagx .

Destinato a fornire agli sviluppatori di tag personalizzati facilità di sviluppo senza perdita di funzionalità.

  • Uno dei principali sviluppatori di JSTL ha commentato che se avesse avuto il tempo, avrebbe riscritto tutto il JSTL usando i file tag.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top