ひらい ぶらり Hi-Library

ぷろぐらみんぐについて。ときどきどうでもいいことについて。

ModelDrivenという仕組み

ModelDrivenという考え方自体は難しくてよく分からないが
http://www.atmarkit.co.jp/aig/04biz/mda.html
よくわからんけど、モデルになるものを作って、そこからソースコードを生成するよ!ってお話なのかな?んでプラットフォーム依存をしない、と。

よくわからないけど、とりあえずStruts2のModelDrivenは理解した。(多分)
丁度今日書いた記事に応用できそう。
無駄にActionクラスにsetter/getterを書かなくていいですよって話らしい。
setterを書いて値の自働格納をするのはフィールドドリブンっていうらしいよ!

やること

  • struts.xml
    • デフォルトのインターセプターを使っていないならばModelDrivenInterceptorを入れる
  • アクション側
    • com.opensymphony.xwork2.ModelDrivenをインポート
    • ModelDrivenをimplements
    • モデルとなるクラスをインポート
    • モデルを保持
    • getModel()というメソッドでモデルをreturn
  • モデル側
    • 取得したい変数を宣言
    • setter/getterを宣言

これでコードすっきり!素敵だね!
Action側を別な人が作ってたりするので、ModelDrivenだけセットしてもらえば特にActionクラスをいじることなくモデルに値が格納される。ウマー

参考
http://www.mlexp.com/wiki/?Struts2%20%A5%E1%A5%E2#s3fe2005