機能SAMPLE.2 「EzServlet/押されたボタンに対応するメソッドの呼び出す方法」
この説明をする前に、Webフレームワーク(EzServlet)のレイヤについての説明を…
構成は以下のようになります。
それぞれの比率は「HTML:DTO = 1:1」となり「DTO:CONTROLLER = n:1または1:1」の関係になります。
お互いの関連は、以下のルールで決まります。
1.HTMLとDTOは、同一パッケージに存在し、互いの名称は同名とする。
2.DTOには、関連するCONTROLLERクラスを"staticプロパティー"で指定する。
3.HTMLの「ボタン」タグ等の"name属性"と、CONTROLLERクラスのメソッド名を同名にする。
HTMLは以下の様になります。ファイル名は「Hoge.html」とします。
<html>
<head></head>
<body>
<form method="POST">
<input type="button" name="add" value="足す">
<input type="button" name="sub" value="引く">
</form>
</body>
</html>
DTOクラスは以下の様になります。
public class Hoge implements Serializable { /** Hogeに対応するコントロラークラスを保持する属性です */ public static final Class CONTROLLER_CLASS = HogeController.class; }
CONTROLLERクラスは以下の様になります。
public class HogeController { /** 「足す」ボタンが押された時に呼び出されるメソッドです */ public void add(Hoge hoge) { System.out.println("足すボタンが押されたよ!") // 表示するHtmlのDTOをセットします。 response.setPage(hoge); } /** 「引く」ボタンが押された時に呼び出されるメソッドです */ public void sub(Hoge hoge) { System.out.println("引くボタンが押されたよ!") // 表示するHtmlのDTOをセットします。 response.setPage(hoge); } }
これで、押されたボタンに対応するメソッドが呼ばれることになります。
超かーんたーん(o^∀^)oネッ♪
ここで書いた「○○のサンプル」は、id:shotさんの「ショウケースとしてのサンプルについて」に
インスパイアされて書いたものです。
始めに自分なりにフレームワークの説明を書いていた時に、
これは違う。分かりづらいっと思っていました。
その時、前に見たshot6さんの「ショウケースとしてのサンプルについて」を思い出して、再度読み
返していたところ、T2フレームワークの開発前(中?)に書いていた「妄想」シリーズを見つけ、
シンプルでスゲー分かり易いと思い真似してしまいました。。。
shot6さん、勝手に真似してすいませんm(__)m 問題があるようでしたら直ぐに削除いたします。。。
ショウケースとしてのサンプルについて(2008-07-07)