2010-08-09 13 views
11

Birincil Soru: Uygulamam GÜNCELLE Struts 1.x kullanıyorsa - ve EITHER Spring'e geçmeyi düşünüyorum MVC-framework için -MVC veya Struts2 - Struts1.2'den göç etmeyi kolaylaştıracak herhangi bir şey var mı?Struts 1.2'den Geçiş -> Struts2 vs Spring-MVC (öncelikle Struts1.2 taglib desteği ile)

Ben SpringMVC veya Struts2 olup olmadığını soran DEĞİL netleştirmek için daha iyi bir genel (olduğunda çeşitli SO mevcut Q en çok sayıda o adres bu) - Struts1.2 dan göç daha kolaydır sadece bir tane.

Bir göç açısından en çok ilgi duyuyorum noktası: JSP sayfaları içinde struts1.x en taglib kullanmak (başlangıçta) devam olasılığı üzerinde Struts2 (veya SpringMVC en) API değiştirirken arka uç (Başka bir deyişle, bu çerçevelerden biri Struts1.x'in eklentisini eklenti olarak destekleyebilir)? [Not: Bu uzun vadeli bir çözüm olarak tasarlanmamıştır - ancak JSP'lerin hemen yeniden yazılması gerekmeyeceğinden, entegrasyon ağrısını azaltacaktır. Bu soruyu mantıklı kılıyoruz - eğer değilse, lütfen nedenini açıklayınız.)

Bununla birlikte, tabii ki başka herhangi bir göç avantajıyla ilgileniyorum.


Bazı arka plan: Kimin MVC katman Struts 1.2 aracılığıyla yazılır bir uygulama üzerinde çalışıyorum

. Uygulamanın şu anda Struts katmanı ve Spring'in DI tesisleri arasında güçlü bir entegrasyona sahip olmamasına rağmen Spring IOC kullanıyoruz. (Not: Bu biz refactor zaman düzeltme plan şeydir, ama zihnimin planlama biraz olmasıdır - bu yapılabilir düzgün/a Bahar IOC + Struts2 kombinasyonunu kullanarak verimli bile.)

Codebase'i iyileştirmek/yeniden yapılandırmanın bir parçası olarak, daha modern bir MVC çerçevesine yükseltmek istiyoruz (Eylem/Form sınıflarına olan ihtiyacı ortadan kaldırmak ve mümkün olduğunda Annotation-based konfigürasyonunu kullanmak için), fakat genel klasiği koruyoruz. -MVC style (yani şu anda JSF, Goblen, GWT, Flex, Play, vb. Atlamayı yapmakla ilgilenmiyorum. Bunların çok farklı şeyler olduğunu anlıyorum - onları genel bir fikir vermek için bir araya getirmek ..) Ayrıca arzu, makul bir çekiş/momentum ile bir şeyle gitmek - yani iktidar S bu sebeple dışarı çıkar. Bu, yalnızca yarışmacının olarak Bahar-MVC & Struts2 terk görünüyor -

Bir Bunlardan herhangi birine geçiş olduğunu verilir (benzer bir stille ve güçlü sanayi çekiş birlikte başka bir şey varsa bile biz kesinlikle dikkate alacağını) olur bir iniş miktarını gerektirir - ancak planın modüler bir seviyede yapılması gerekir. Bu nedenle, bu destekli Struts 1.2'nin taglib'den herhangi biri - anahtarlama/test etmeyi çok daha kolay hale getirecektir (daha sonra yeni bir modülde belirli bir modülün "Kontrol" uygulamasını kodlayabileceğimiz gibi - ve eski bir Struts1 sunucusunu çalıştıran 2. bir sunucuya sahip olabiliriz. o bir çözüm getireceği daha .2 uygulama Ayrıca

? daha baş ağrısı için bu yaklaşımı (hatta mümkünse) öne olacaktır. QA testi sonra bir bakıma "elma ile elma" olurdu. Bu mantıklı aynı JSPs mu kullanarak veya Yukarıda da belirttiğim gibi, ilk sorum, struts1.2'nin ya Spring-MVC ya da Struts2 ile taglib'i çalıştırmakla ilgili olsa da - Struts2-vs-Spring-MVC'nin diğer MIGRATION avantajlarıyla da ilgileniyorum.

+0

Benzer bir yükseltme yapmaya hazırlanıyoruz. Karşılaştığınız herhangi bir barikat/zor geçiş var mıydı? – Scott

cevap

3

Bu çerçevelerden herhangi birinde Struts 1 taglib desteği görmedim.

bazı küçük Struts2 avantajları: - http://struts.apache.org/2.2.3.1/docs/migration-strategies.html - http://struts.apache.org/2.2.3.1/docs/migration-tools.html

Eğer Struts2 kendi eylemleri çalışmasını sağlar Struts2 bile bir Struts1 eklentisi vardır Struts2 için Struts1 uygulamaları geçiş hakkında birkaç resmi referanslar vardır - http://struts.apache.org/2.2.3.1/docs/struts-1-plugin.html

Ne yazık ki, bu aynı referanslar eski JSP'lerinizi dönüştürmeniz gerektiğini söylüyor ve bu kolay bir iş değil.

1

Her ikisine geçmek, esas olarak işin miktarı ve türü ile aynıdır.

hala JSP dosyaları yeniden yazmak gerekir kaydetti ve uygulaması hala servlet çerçevesine S1'nin yakın bağları muzdarip gibi, mevcut S1 eylem sınıflarının kullanımına izin S2'de Struts 1 eklenti orada iken.

+0

bu http://stackoverflow.com/questions/13314240/struts-2-migration-to-spring-mvc/31242289#31242289 adresine bakın. – GeekOnJava

+0

@GeekOnJava Neden ?! –

4

Strut1.2, Spring MVC'ye geçiş yaparsa, WEB-INF/lib'de struts.jar'i eklersek, yine de Spring MVC'de strut1.2 taglib'i kullanabiliriz, bu demektir ki hala fasulye kullanabilirsiniz: : yaz ... mantık: şimdiki, mantık: eşittir ... (Struts1.2 taglib) JSP'de sadece değişiklik, 1.2 form taglib biçimindedir (html: text, html: error html: form ...) olarak değiştirilmelidir Spring form taglib (form: yol, form: form, form: yol, form: hata ...) böylece form verilere komut verebilmek için form datalarını, dataData komutunu veya dataized komut verilerini formBackObject ile bahar MVC JSP özelliğini kullanmak için