Strutsの起動方式

struts-config.xml


これは3つのアクションクラス定義を抜き出したものです。
"/Login"と"/Top"では、"top.jsp"が指定されておりますが、"/ChangeGo"では、"/Top.do"です。
どちらも、トップメニュー画面が表示されるのですが、この違いは何なんでしょうか?

"top.jsp"は、本来はアクションクラス(TopAction)から呼び出されるものです。
もしここで、"/ChangeGo"のpathに"top.jsp"を指定したらどんな動作をするでしょうか?

私はこの2つの違いを「 jsp起動 」と「 クラス起動 」という呼びかたで表現しております。

CGI(PHPなど)では、サーバ内で処理がおこなわれて結果としてHTMLを作成して出力します。
しかし、Strutsでは直接に"top.jsp"を出力でき、"top.jsp"は自分で処理をおこなってHTMLを作成して出力します。

上記例の場合だと、データベース一覧情報が準備されていないと表示できません。
つまり、環境を準備してやらないと"top.jsp"は、正常に処理を完了できないことになります。

"LoginAction"クラスでは、データベース一覧を取得させていますが、「 クラス起動 」にすれば、余計な処理を省けます。
何故ならば、"TopAction"クラスで既におこなわせているからです。

説明がいまいちですが、理解できたでしょうか。