11

主な質問:私のアプリが現在Struts 1.xを使用していて、MVCフレームワークとしてSpring-MVCまたはStruts2のいずれかに移行することを検討している場合、Struts1.2からの移行を容易にするものはありますか?

明確にするために、私はSpringMVCとStruts2のどちらが全体的に優れているかを尋ねていません(これに対処するSOには既存のQがいくつかあります)-どちらがStruts1.2から移行しやすいかだけです。

移行の観点から私が最も興味を持っている点は、バックエンドでStruts2(またはSpringMVC)のAPIに変更しながら、JSPページ内でstruts1.xのtaglibを(最初に)使用し続ける可能性です。(言い換えると、これらのフレームワークのいずれかがプラグインとしてStruts1.xのtaglibをサポートできますか?)[注:これは長期的な解決策として意図されたものではありませんが、JSPをすぐに書き直す必要がないため、統合の問題が軽減されます。この質問は理にかなっていると思います-そうでない場合は、理由を説明してください]

そうは言っても、私はもちろん他の移行の利点に興味があります。


いくつかの背景:

私はMVCレイヤーがStruts1.2を介して記述されているアプリに取り組んでいます。また、Spring IOCも使用していますが、アプリには現在、StrutsレイヤーとSpringのDI機能が強力に統合されていません。(注:これはリファクタリング時に修正する予定ですが、少し計画を立てれば、Spring IOC + Struts2の組み合わせを使用している場合でも適切/効率的に実行できると理解しています。)

コードベースの改善/リファクタリングの一環として、より新しいMVCフレームワークにアップグレードしたいと思います(アクション/フォームクラスの必要性を排除し、可能な場合はアノテーションベースの構成を使用するなど)が、全体的なクラシックを維持します-MVCスタイル(つまり、現在JSF、タペストリー、GWT、Flex、Playなどに飛躍することに興味がありません。これらは非常に異なるものであることを理解しています-一般的なアイデアを与えるためにそれらをまとめます。)また、欲求は、合理的な牽引力/勢いで何かを行うことです-そのため、Stripesを除外します。これは、Spring-MVCとStruts2を競合他社として残すだけのようです(ただし、同様のスタイルで業界の牽引力が強いものが他にある場合は、確かにそれを検討します)

これらのいずれかに切り替えるには、かなりの量の作業が必要になることは当然ですが、計画では、モジュールレベルでそれを行うことです。そのため、これらのサポートされているStruts 1.2のtaglibのいずれかがあれば(新しいAPIで特定のモジュールの「制御」実装をコーディングできるため)、切り替え/テストがはるかに簡単になり、2番目のサーバーで古いStruts1を実行できます。 .2同じjspsを使用した実装QAテストは、ある意味で「apples to apples」になります。これは理にかなっていますか、またはこのアプローチ(実行可能である場合でも)は、解決するよりも多くの頭痛の種につながりますか?

また、前述のように、私の主な質問は、Spring-MVCまたはStruts2のいずれかでstruts1.2のtaglibを実行することですが、Struts2-vs-Spring-MVCの他の移行の利点にも興味があります。

4

4 に答える 4

4

Strut1.2をSpringMVCに移行する場合、Web-INF / libにstruts.jarを含めると、SpringMVCでstrut1.2taglibを引き続き使用できます。つまり、bean:define、bean:writeを引き続き使用できます。 .logic:present、logic:equal ...(Struts1.2 taglib)JSPでは、変更のみがstruts 1.2 form taglib(html:text、html:error html:form ...)をspring form taglib( form:path、form:form、form:path、form:error ...)フォームフィールドをコマンドクラスデータ、referenceData、またはformBackObjectによって初期化されたコマンドデータにバインドして、SpringMVCJSP機能を使用できるようにします

于 2012-10-22T01:35:59.437 に答える
3

これらのフレームワークのいずれにおいても、Struts1taglibのサポートは見ていません。

Struts2のマイナーな利点:Struts1から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

Struts2にはStruts1プラグインもあり、Struts2でアクションを実行できます-http ://struts.apache.org/2.2.3.1/docs/struts-1-plugin.html

残念ながら、これと同じリファレンスは、古いJSPを変換する必要があることを示しており、それは簡単な作業ではありません。

于 2011-10-13T01:17:03.107 に答える
2

次の記事を読んで比較してみてください。

スタックオーバーフローの「Struts2 から Spring MVC への移行」の質問も参照してください。

于 2011-02-01T12:08:34.127 に答える
1

どちらに移動しても、本質的に同じ量と種類の作業です。

S2に既存の S1 アクション クラスを使用できる Struts 1 プラグインがありますが、前述のように、JSP ファイルを書き直す必要があり、アプリは S1 とサーブレット フレームワークとの密接な関係に悩まされます。

于 2011-10-13T01:40:30.500 に答える