学習用WEBフレームワークEzServlet/ブラッシュアップしてシンプルになりました。。。
当初より、大分simpleに出来るようになりました...^^
単純な「足し算」アプリであれば、以下の様に記述するだけでokですよ。。。
クラス数や行数少ないという話だけではありませんよ。ソースの中身がシンプルなのです ( ̄0 ̄)b ```
HTML名の名称「calc.html」
<html> <!-- POINT : 純HTML(jspじゃなくて)でok!--> <body> <form> 項目1<input type="text" name="item1"/>+ 項目2<input type="text" name="item2"/>= <tg:out name="result">計算結果</tg> <!-- POINT : MOCKメッセージが入っていてもok!--> <br/> <input type="button" name="add" value="計算"> <br/> <tg:out name="errors">エラーメッセージ</tg> </form> </body> </html>
Hoge.htmlの入出力項目の値を格納するBEAN
import static xxx.trygun.framework.util.validate.EzValidateUtil.*; public class Calc { //POINT : 何も継承しなくてok! public String[] errors; public String item1; public String item2; public long result; //POINT : 出力項目の型はString以外もok! public boolean validate() { EzMessage message = new EzMessage(); numeric(message).name("項目1").digit(10).required().value(item1); numeric(message).name("項目2").digit(10).required().value(item2); errors = message.getMessage(); return message.isSuccess(); } }
Calc.htmlのボタンに対応するコントローラー
import static xxx.trygun.framework.util.convert.Ezconvert.*; public class CalcController { //POINT : 何も継承しなくてok! public void add(EzRequest request, EzResponse response, Calc calc) { // 画面入力値をCalcへ設定 request.bind(calc); //POINT : 各項目にセットするソースを記述しなくてもok! // 画面入力値検証 response.continuation(calc.validate()); //POINT : 検証結果を分岐で記述しなくてもok! // 計算処理(ビジネスロジック) calc.result = parseLong(calc.item1) + parseLong(calc.item2); //POINT : setter,getterがなくてもok! // // 計算結果画面を表示 // response.to(calc); //POINT : 画面遷移をタイプセーフに記述ok! } }
直感的で分かり易くなりました。
これなら、自動生成(plugin)を利用しなくても開発できそうな気がしてきた。
まぁ、単純になればなるほど定型&機械的作業になるから、自動生成(plugin)は利用したほうが便利だろけど…