2017-03-13 57 views
0

私はStruts1からStruts2へアプリケーションを移行しようとする初心者です。移行プロセスでは、次の問題に直面しています。 -Struts1からStruts2への移行、Struts1からStruts2への変換を同等に

1)Struts1のActionServletを拡張するサーブレットがあります。スーパーがprocessのように呼び出されている多くのオーバーライドされたメソッドがあります。Struts2に変換するのと同等のことを知りたいと思います。私はStrutsPrepareAndExecuteFilterで同等のものを取得していないためです。

2)すべてのフォームBeanをModel Driven Beanに変換し、すべてのアクションをクラスActionSupportに拡張しました。それにstruts.xmlにも入りました。

上記の2つの問題についてご意見をお寄せください。

答えて

1

アクションが実行される前にprocessが実行されています。フレームワーククラスをオーバーライドする目的は、機能を変更/拡張することです。変更のほとんどは古いフレームワークに関連しており、削除することができます。 Struts2で置き換えられないコードを使用する必要がある場合は、カスタムインターセプタを記述する必要があります。これは、クラスのオーバーライドの代わりにStruts2の機能を変更/拡張する通常の方法です。

interceptorsについて詳しくは、Struts docsのサイトを参照してください。

アーキテクチャには問題ありませんが、ModelDrivenは、コントローラにBeanを注入することで置き換えられます。 Nullpointerexception while setting a beanを参照してください。

時々、Beanのスコープが重要です。たとえば、Struts1はデフォルトでセッションスコープを使用します。インターセプタのantを使用してsessionMapを注入して、必要に応じてオブジェクトをセッションに保持したり、this質問のようにセッションスコープBeanを実装したりすることができます。

+0

助けてくれてありがとうローマ! – Test

関連する問題