2010-08-09 7 views
11

Domanda principale: Se la mia app è ATTUALMENTE usando Struts 1.x - e sto pensando di migrare a EITHER Spring -MVC o Struts2 per il framework MVC: c'è qualcosa di uno che renderebbe più facile la migrazione da Struts1.2?Migrazione da Struts 1.2 -> Struts2 vs Spring-MVC (principalmente vis-a-vis Struts1.2 supporto taglib)

Per chiarire, non sto chiedendo se SpringMVC o Struts2 è complessivamente migliore (ci sono un certo numero di Q di esistente, in modo che l'indirizzo presente) - solo che uno è più facile migrare verso da Struts1.2.

Il punto che mi interessa di più dal punto di vista della migrazione: possibilità di continuare (in principio) utilizzare taglib di struts1.x all'interno delle pagine JSP, mentre cambiando di API Struts2 (o SpringMVC di) su il back-end. (In altre parole, uno di questi framework può supportare taglib di Struts1.x come un plug-in)? [Nota: questo non è inteso come una soluzione a lungo termine, ma ridurrebbe il dolore dell'integrazione, dal momento che le JSP non avrebbero bisogno di essere immediatamente riscritte. Presumo che questa domanda abbia un senso - se no, per favore espandi perché]

Detto questo, sono ovviamente interessato a qualsiasi altro vantaggio di migrazione.


Alcuni retroscena:

Sto lavorando su un'applicazione il cui strato di MVC è scritta via Struts 1.2. Stiamo anche utilizzando il COI di Spring, anche se attualmente l'app non ha una forte integrazione tra il livello Struts e le strutture DI di Spring. (Nota: Questa è una cosa che abbiamo intenzione di correggere quando abbiamo refactoring, ma la mia comprensione è che con un po 'di pianificazione - questo può essere fatto correttamente/in modo efficiente anche quando si utilizza una combinazione primavera del CIO + Struts2.)

Come parte del miglioramento/refactoring del codebase, vorremmo passare a un framework MVC più moderno (in modo da eliminare la necessità di classi Action/Form e utilizzare la configurazione basata su Annotation quando possibile, ecc.) Ma mantenere il classico generale -MVC style (cioè non al momento interessato a fare il salto a JSF, Tapestry, GWT, Flex, Play, ecc. Capisco che queste sono cose molto diverse - aggregandole solo per dare un'idea generale ..) , il desiderio è di andare con qualcosa con una ragionevole trazione/quantità di moto - in modo da governare S triplica per quel motivo. Questo sembra lasciare solo Spring-MVC & Struts2 come contendenti (anche se c'è qualcos'altro con uno stile simile e con una forte trazione del settore - lo considereremmo sicuramente)

È un dato di fatto che il passaggio a uno di questi sarebbe richiede una quantità di lavoro in discesa - ma il piano sarebbe di farlo a livello modulare. Per questo motivo, se uno di questi taglib di supporto di Struts 1.2 - renderebbe molto più semplice lo switching/test (come potremmo quindi codificare l'implementazione di "Control" di un particolare modulo nella nuova API) e avere un secondo server eseguire il vecchio Struts1 .2 implementazione utilizzando gli stessi jsps. Il test QA sarebbe quindi "mele alle mele" in un modo. Ha senso, o questo approccio (se possibile) potrebbe portare a più mal di testa di quello che sarebbe risolto?

Anche , come detto sopra, mentre la mia domanda principale riguarda l'esecuzione di taglib di struts1.2 con Spring-MVC o Struts2 - Sono anche interessato a qualsiasi altro vantaggio di MIGRATION per Struts2-vs-Spring-MVC.

+0

Ci stiamo preparando per un aggiornamento simile. C'erano dei blocchi stradali/transizioni difficili a cui ti sei imbattuto? – Scott

risposta

3

Non ho visto il supporto per tagli di Struts 1 in nessuno di questi framework.

Alcuni vantaggi Struts2 minori: Ci sono alcuni riferimenti ufficiali sulla migrazione delle applicazioni da Struts1 a Struts2 - http://struts.apache.org/2.2.3.1/docs/migration-strategies.html - http://struts.apache.org/2.2.3.1/docs/migration-tools.html

C'è anche un plugin Struts1 in Struts2 che consente di eseguire le azioni in Struts2 - http://struts.apache.org/2.2.3.1/docs/struts-1-plugin.html

Sfortunatamente, questo stesso riferimento indica che è necessario convertire i vecchi JSP e non è un compito facile.

1

Il passaggio a uno è essenzialmente la stessa quantità e tipo di lavoro.

Mentre non vi è un plugin Struts 1 S2 che permette l'uso di classi d'azione S1 esistenti, come notato è ancora necessario per riscrivere i file JSP, e la vostra applicazione sarebbe ancora soffrire di stretti legami di S1 ​​al quadro servlet.

+0

controlla questo http://stackoverflow.com/questions/13314240/struts-2-migration-to-spring-mvc/31242289#31242289 – GeekOnJava

+0

@GeekOnJava Perché ?! –

4

Se migriamo Strut1.2 a Spring MVC, se includiamo il struts.jar in WEB-INF/lib, possiamo ancora usare strut1.2 taglib in Spring MVC, il che significa che puoi ancora usare bean: define, bean : write ... logic: present, logic: equal ... (Struts1.2 taglib) in JSP, solo il cambiamento è struts 1.2 form taglib (html: text, html: error html: form ...) dovrebbe essere cambiato in spring form taglib (form: path, form: form, form: path, form: error ...) in modo che possiamo associare i campi del modulo per comandare dati di classe, referenceData o dati di comando inizializzati da formBackObject per utilizzare la funzione MVC di Spring MVC