Domanda

Ho visto alcuni progetti JSF sviluppati dai miei colleghi e questi progetti mi sono sembrati molto lenti. Qualcuno ha la stessa opinione?

Attualmente sto usando jsp + jstl e jQuery per " rich " cliente.

Mi chiedo quali vantaggi e svantaggi abbiano quadri moderni (jsf, wicket, arazzo ...) rispetto al vecchio jsp semplice.

Sarebbe bello se le persone che usavano tutte queste tecnologie avessero risposto.

È anche interessante per me quali funzioni più eccitanti ti hanno fatto lasciare jsp e usare " massiccio " framework (intendo, ad esempio, AOP in primavera o qualcos'altro che puoi notare).

Grazie per tutti i commenti.

È stato utile?

Soluzione

Ho usato CGI, PHP, JSP, Struts, Spring MVC (1.2), Bea workshop, JSF, JBoss Seam, Spring MVC (2.5) e Wicket (in questo ordine). Ho notato un aumento sia della produttività che della qualità per ogni nuova tecnologia su cui ho lavorato. Funziona semplicemente meglio, sembra migliore. Preferisco il Wicket (con un tocco di molla, quarzo, ecc.) Su tutti gli altri. Posso onestamente dire di aver visto la luce e non voglio tornare da un lato più oscuro - o più chiaro;).

C'è molto da dire su Wicket.

  • Il supporto conversazionale (o l'abilitazione delle schede) viene fornito per impostazione predefinita, non ti preoccupare di " apri in una nuova scheda " e "indietro" problemi di pulsante mai più.
  • È basato su componenti, quindi è possibile riutilizzare il codice ala swing.
  • Sfrutta molte delle Java standard, come le meraviglie del tipo di sicurezza.
  • Supporta funzionalità di sicurezza avanzate come la crittografia URL.
  • Applicazioni clusterizzabili per impostazione predefinita.
  • E, soprattutto, è divertente da usare.

C'è molto da migliorare per JSP e JSF.

  • L'unica cosa che mi preoccupa di più è la "EL" assurdità, perché credo che rompe la sicurezza e la forza del tipo java.
  • Entrambi hanno bisogno del supporto degli strumenti per un'alta produttività.
  • È necessario un altro framework sopra entrambi per risolvere veramente i problemi (come visto con Seam Framework, che rende utilizzabile JSF).
  • La gestione degli errori è molto complicata e le eccezioni non sono molto utili.
  • È difficile creare componenti riutilizzabili su entrambi i framework e non supporta un modello adeguato per la separazione delle preoccupazioni.
  • ... e, soprattutto, una lunga serie di dolori minori, come this o this .

Altri suggerimenti

Mi piace assolutamente usare JSP 2.0 come tecnologia di template - ovvero utilizzo Spring MVC per accedere ai miei oggetti di dominio e preparare tutti i dati di cui ho bisogno per una certa vista e lasciarli a JSP per renderli. JSP 2.0 perché mi piace usare i file tag per la composizione del modello che mi consente di usare JSP 2.0 semplice dove avrei bisogno di altri framework di composizione altro.

Evito intenzionalmente tutto in JSP che sostanzialmente sta programmando. Nessun accesso ai dati, nessun SQL, nessun scriptlet, nessun metodo, niente di niente. solo una semplice presentazione di dati preesistenti forniti dal controller con forse alcuni casi semplici e iterazioni di raccolte.

Molti vantaggi. Posso elencare i vantaggi di JSF che sono quelli che ho usato nel mio ultimo progetto.

  • Luogo centralizzato per la navigazione (come nei puntoni)
  • Componenti come un selettore di date, il completamento automatico, il paging, ecc.
  • Hai dei render per il layout che facilita molto la logica del layout.
  • Disponibilità di tessere, come in puntoni.

JSP non fa una chiara separazione tra logica aziendale e layout.

Comunque, nonostante tutti questi vantaggi e se sei un programmatore Java, consiglierei di dare un'occhiata a

JSP è estremamente primitivo, praticamente non hai widget e devi costruire tutto da solo. JSF mentre un miglioramento non è il miglior framework Web per Java - ce ne sono molti altri che ti consentono di ottenere un risultato molto più impressionante - ad esempio GWT.

Vantaggi di Spring MVC:

  • Il framework incoraggia sottilmente a scrivere codice meglio progettato: usando l'iniezione delle dipendenze e suddividendo il design dell'applicazione in oggetti di dominio (modello), controller, classi di servizio, DAO, ecc.
  • Come effetto collaterale del primo punto elenco, il codice finisce per essere estremamente e facilmente testabile in unità.
scroll top