- - PR -
super.execute( )の意味
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-11-10 16:35
suer.メソッド()は親クラスのメソッド呼び出しでしかありません。
apoさんがsuper.execute();と書いたわけではないのですよね。 書いた方に、どういう意図で使っているのですか?と、 聞いてみてはいかがでしょうか。 |
|
投稿日時: 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()の流れを、使ったり、使わなかったり、 出来るわけですね。 |