Quasi ovunque puoi leggere che dovresti usare EL invece di script in JSP. E Sono d'accordo sul fatto che non devi utilizzare alcun codice JAVA in JSP ad eccezione di chiamare metodi getter sugli oggetti modello . Questo è abbastanza ovvio per me e non ho bisogno di alcun chiarimento qui. Ma c'è questa cosa che davvero non riesco a capire è la mancanza di supporto per EL in Eclipse IDE.
Iniziamo con il confronto di alcuni codici. Primo esempio EL:
${user.name}
${user.surname}
E ora qualche esempio di espressione scriptlet / JSP:
<jsp:useBean id="user" class="com.mycompany.User">
<%= user.getName() %>
<%= user.getSurname() %>
</jsp:useBean>
È chiaramente visibile che EL è più elegante. Tuttavia, Eclipse non fornisce alcun supporto automatico o supporto per refactoring per EL. E per le espressioni JSP funziona come un fascino. Se si elimina il metodo getName () dalla classe Java, il validatore JSP mostrerà un errore durante la compilazione. Se si rinomina il metodo, tutti i file JSP connessi si aggiorneranno automaticamente. Inoltre, anche quando cerchi riferimenti al metodo getName (), Eclipse mostrerà tutte le chiamate attraverso i file Java / JSP (a patto che tu abbia usato espressioni JSP / scriptlet). E nessuna di queste funzionalità è disponibile per EL.
Alcuni programmatori potrebbero dire che a loro non interessa molto e la sintassi EL è molto meglio per loro, punto. Ma lavoro con un codice legacy piuttosto complesso (che non ho scritto) nel mio progetto attuale e mi crede che il refactoring di oggetti EL / model sia un incubo. Esistono molti oggetti DTO che estendono e compongono altri oggetti DTO che vengono utilizzati su più viste JSP. Ogni cambiamento è difficile, perché non posso dire in fase di compilazione se non ho infranto nulla.
Sulla base di questa esperienza, non riesco a capire come qualcuno possa suggerire di usare EL invece delle espressioni JSP. Per favore dimmi che mi manca qualcosa e che sia usando le espressioni JSP sia corretto (nel mio esempio) o che c'è un modo per abilitare tutti i vantaggi dell'uso della sicurezza di tipo con EL.
EDIT:
So che IntelliJ ha un supporto migliore per JSP, ma vorrei prima concentrarmi su Eclipse. Spero che ci siano ancora alcune persone che lavorano a progetti JSP su Eclipse / Spring Tool Suite.