Taglibs contro JavaClass: o il modo di combinare sia nel migliore dei modi
Domanda
Al momento sto scrivendo un modello per OpenCms, un CMS basato su Java con un ottimo taglib-supporto e un'API potente.
In ogni caso, quando guardo tutorial o la fonte, i suoi circa 50-50 che taglibs o Javaclasses vengono utilizzati per generare (html) -output.
Io cerco di tenere i miei JSP pulito, nel senso di non codice scriplet molto (invece usando JSTL e così via). Ad un certo punto ho potuto bisogno di più controllo sul codice, questo è erano i Java-classi entrano e qui io non so fino a che punto dovrei andare (io personalmente non mi piace l'idea di generare codice HTML in una classe).
Ecco alcuni pro e contro che ho anche se:
- Con taglibs, non devo riavviare il contenitore di servlet ogni volta. Ho solo fare le mie modifiche e vedere il risultato
- Un taglib JSP è più facile da mantenere, soprattutto per webdesigner a causa della "stessa" sintassi
- Un JavaClass fornisce pieno / maggiore supporto IDE (tipo / controllo di sintassi)
- Con esigenze più complesse il JavaClass-codice è più pulito (rispetto a mettere variabili al pageContext in JSP)
- EL (linguaggio delle espressioni) aggiungere più potenza al JSP / taglib ma questo è ancora un altro sintassi e deve essere appreso
Ci sono delle migliori pratiche su come affrontare questo? Dato che ci sono altri colleghi, che, probabilmente, devono mantenere questo in futuro, sto cercando una soluzione / mantenibile pulito - È esaltante tutti sapete la situazione in cui si guardava codice somebodies e anche se "ma che cazzo era lui / seh pensiero" ;)
Soluzione
Ho mantenuto questo piuttosto semplice in passato.
Usa taglibs quando lo scopo è la presentazione. Diciamo che avete un blocco di codice di visualizzazione che si sta andando a riutilizzare in un mucchio di pagine, nel caso di StackOverflow, diciamo che il codice di freccia. Dal momento che dovrebbe essere solo la visualizzazione dei dati, non dovrebbe bisogno e il codice Java, e mi piacerebbe utilizzare un taglib.
Usa Java codice quando è necessario convolvere dati. Se si deve guardare in un pacchetto di risorse o di applicare un po 'di formattazione non generico a qualcosa, vorrei utilizzare il codice Java, anche se io preferisco funzioni JSTL al tag per questo.
Non utilizzare per accedere ai database.