- PR -

super.execute( )の意味

投稿者投稿内容
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-11-10 16:35
suer.メソッド()は親クラスのメソッド呼び出しでしかありません。

apoさんがsuper.execute();と書いたわけではないのですよね。
書いた方に、どういう意図で使っているのですか?と、
聞いてみてはいかがでしょうか。
やんち
常連さん
会議室デビュー日: 2008/10/24
投稿数: 32
投稿日時: 2008-11-10 16:47
この場合、strutsのソースを読む必要はないと思うのですが、
ソースが必要なら、strutsはオープンソースで、ネット上でソースのダウンロードも出来ますよ。

> だから、普通は、子側でそれぞれのsubmitボタン実行時の関数の中で
> 例えば、button.cancel(↑)が押されたら、getKeyMethodMap関数の中で
> 定義した"cancel"メソッド(↑)が実行されて、子側の"cancel"メソッドの中で
> findFoward("XXX");
> で、遷移先を取得すればいいと思うのですが、
では、そのcancelメソッドは、誰が呼ぶのかと言う話ではないでしょうか?

まず、strutsの遷移コントローラから、LookupDispatchActionを継承した、子クラスが呼び出されます。
実行は、execute()メソッドから、開始されるイメージです。

もちろん、execute()をオーバーライドしてあれば、子クラス側のexecute()が呼び出される事になります。

そして、
LookupDispatchAction#execute()の中では、LookupDispatchActionの基本となる処理の流れが、
実行されるはずです。
例えば、
getKeyMethodMap()の呼び出しや、そこで、定義したメソッド(cancel)など
の呼び出し。

ですから、
子クラスのexecute()内で、super.execute()を呼び出さなかったとしたら、
折角、LookupDispatchActionを継承しているにもかかわらず、その基本となる一連の動作を
実行しない事になります。

条件次第で、LookupDispatchクラスのexecute()の流れを、使ったり、使わなかったり、
出来るわけですね。

スキルアップ/キャリアアップ(JOB@IT)