私はStruts2とstruts2-convention-pluginSongCrudActionを使用して最初のステップを実行しており、現在、いくつかの典型的な、、およびアクションメソッドを使用してCRUDアクションクラス()にcreate()取り組んedit()でview()いdelete()ます。これらのメソッドはすべて。で注釈が付けられてい@Actionます。
一般的に、便利なデフォルトの動作をから継承したいのですが、これにはメソッドActionSupportの継承も含まれます。execute()
song-crud構成ブラウザーを使用すると、それを指すという名前のアクションがあることがわかります。そのsong-crudアクションは廃止されており、必要なすべての操作に対して独自のアクションメソッドがあるため、これを削除したいと思います。Struts2の規則のおかげで、song-crud私はどこにも宣言していませんが、そのアクションが想定されていると思います。
この特定のケースでは、考えられる解決策の1つは、メソッドに合理的な意味を与えることです。execute()たとえば、view()操作に使用できます。欠点は、アクションクラスの名前をexecute()メソッドの動作に応じて(たとえばViewSongActionではなく)変更する(または注釈を付ける)必要があることですSongCrudAction。そうしないと、ビューアクションのURLが不適切になります(つまり/view-song?id=5、よりも適切になります/song-crud?id=5)。
一方、クラスの名前変更も醜いものになります。これは、単なるCRUDであり、ビューアクションクラスではないためです。
とにかく、一般的な問題は残っています:私がから継承するときはいつでも、それは私がしていることに役立つかもしれないし、そうでないかもしれないメソッドをActionSupport私に提示します。execute()
execute()したがって、Struts 2に、私のCRUDアクションクラスのメソッドを例外的に忘れるように指示するのは合理的と思われます。それは正しいですか、どうすればそれを達成できますか?より良い解決策はありますか?