私はStruts1で自分のアプリケーションを使用しています。私はすべてのアクションでDispatchアクションを使用しています。どのように私がストラット2にシフトするのか、私のすべてのアクションとフォームビーンを変更するために何をすべきかを教えてください。Struts1からStruts2への移行
答えて
私は、この文書シリーズお勧めします:
- http://www.infoq.com/articles/converting-struts-2-part1
- http://www.infoq.com/articles/migrating-struts-2-part2
最初のリンクは、トピックを説明し、第2のリンクの例があります。私はそこから取られた以下の説明はこう書いています
枠組み
最初の、そして最も重要な設定の設定、サーブレットコンテナのweb.xmlファイル内のWebアプリケーションフレームワークを可能にするものです。誰もがStrutsのために精通している必要があり
設定は次のとおりです。Struts2のために
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
非常にいくつかの変更があります。最も重要な点は、ディスパッチャがサーブレットフィルタからサーブレットフィルタに変更されたことです。構成は、サーブレットのと同じくらい簡単で、ここに示す:
<filter>
<filter-name>webwork</filter-name>
<filter-class>
org.apache.struts.action2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
が要求ウォークスルー私たちはからStrutsとStruts2の間の相違点のいくつかについて話してアクション
を解体します上級。それをさらに深めて、各フレームワークのアクションの構造の違いを見てみましょう。
まずStrutsアクションの一般的な構造を見てみましょう。 Strutsアクションの一般的な形式は次のようになります。
パブリッククラスMyActionアクションは{ 公共のActionForwardは(ActionMappingのマッピング、 ActionFormのフォーム、 HttpServletRequestのリクエストを、 HttpServletResponseの応答) スロー例外{ //行う実行拡張します仕事 リターン(mapping.findForward( "success")); }}
Strutsアクションを実装するには、次の項目に注意する必要があります。
- すべてのアクションは、アクションの基本クラスを拡張する必要があります。
- すべてのアクションは、単一のアクションインスタンスのみが作成されるため、スレッドセーフでなければなりません。
- アクションはスレッドセーフでなければならないため、アクションの処理に必要なすべてのオブジェクトがメソッドシグネチャで渡されます。
- アクションの処理のために呼び出されるメソッドの名前は "execute"です(Strutsで使用可能なDispatchActionクラスがあります。これは、実行するメソッドを別のメソッドに同じアクションで再ルーティングできますが、フレームワークからアクションへの最初のエントリポイントはまだ "実行"メソッドです)。
- ActionForwardの結果は、ActionMappingクラスのメソッドを使用して返されます。最も一般的なのは、 "findForward"メソッド呼び出しです。
これに対し、Struts2アクションは、実装がはるかに簡単です。あなたは気づいているかもしれません
public class MyAction {
public String execute() throws Exception {
// do the work
return "success";
}
}
まず最初に、アクションが任意のクラスまたはインタフェースを拡張していないということです。ここでは次のようになります。実際、それはこれ以上に進んでいます。規約上、アクションの処理で呼び出されるメソッドは「実行」メソッドですが、必ずしもそうである必要はありません。メソッドのシグネチャpublic String methodName()に続くメソッドはすべて、コンフィグレーションを通じて呼び出すことができます。
最後に、元のStruts実装との最も革新的な違いは、アクションの処理で呼び出されるメソッド( "execute"メソッド)にパラメータがないことです。では、どうやって作業する必要があるオブジェクトにアクセスできますか?答えは、 "制御の反転"または "依存性注入"パターンです(詳細はMartin Fowlerの有益な記事はhttp://www.martinfowler.com/articles/injection.htmlです)。 Spring Frameworkではこのパターンが一般化していますが、Struts2(WebWork)の前身は同じ時間にパターンを使用し始めました。
あなたは古いDispatchAction
スタイルは、機能(またはあなたがずっと同じことを行うために、パラメータを使用しインターセプタを書くことができ)「メソッド名を渡す」漠然と-模倣するdynamic method invocationを使用することができます。
あなたはModelDriven
(some docs)を実装することができますがない「フォームBean」自体は、Strutsの2ではありませんし、それフォームBeanのように動作します-of ソート。
すべてのJSPは、Struts 1タグを使用している場合にのみ、書き直す必要があります。 JSTLタグのみを使用した場合、はである必要はありません。
イーシンのリンクは、より詳細な情報を得るのに適しています。 Strutsの2.xの
- :ストラット1.xのため
*.action
- としてディスパッチャアクションフィルタを作成します。Strutsの:
*.do .
- 1. Struts1からStruts2への移行、Struts1からStruts2への変換を同等に
- 2. Struts1からStruts2への移行方針
- 3. struts1→(struts2、spring)からの進路を提案する
- 4. 選択タグをStruts1からStruts2に変換する
- 5. Struts1タグの変換方法ResponseUtilsメソッドの書き込みStruts2
- 6. Waffle/PicoからStruts2/Guiceへの変換
- 7. Struts2 2.1から2.5へのアップグレード
- 8. Play Framework 2.5の移行 - Global.onStartからDependency Injectionへの移行
- 9. LinuxからAndroidへのモジュールの移行
- 10. androidのgcmからfcmへの移行
- 11. EmacsからXcodeへの移行のヒント
- 12. 1.2から3.4へのEasyMockの移行
- 13. 2010から2013へのInfoPathの移行
- 14. 1.4から3.0へのjQueryの移行
- 15. 2.6から3.00へのEhcacheの移行
- 16. Netbeansのantからmavenへの移行
- 17. AccessからSQLServerへのデータの移行
- 18. ParseからAzureのDocumentDBへの移行
- 19. C++からC#へのコードの移行
- 20. CouchbaseClientConfigurationからSDKのClientConfigurationへの移行
- 21. SVNからHGへのマルチヘッドプロジェクトの移行
- 22. httpからhttpsへのウェブサイトの移行
- 23. AS7からWF10へのwildflyの移行
- 24. VS.NETからXcodeへの移行のヒント
- 25. SP2007からSP2010へのピクチャライブラリの移行
- 26. websphereからtomcatへのアプリケーションの移行
- 27. SklearnのCountVectorizerからTfidfTransformerへの移行
- 28. DjangoからMysqlへのパスワードの移行
- 29. 列から行へのSQLの移動
- 30. mssqlからmysqlへのデータベースデータの移行
としてアクションフィルタを作成します** [移行ガイドを読みます1〜Struts 2](http://struts.apache.org/2.2.3.1/docs/migration-guide.html#MigrationGuide-Struts1toStruts2)** – lschin