讨论:从业务Model到视图Model跨越--Beetl 即将新增的功能讨论

13 views
Skip to first unread message

atu

unread,
Aug 11, 2011, 2:35:02 AM8/11/11
to antlr中文论坛

数据库有O/R mapping ,其实也有O/V mapping,及业务对象到界面的映射,这样的映射再目前看来,实现是繁琐的,不
合理的。但同时也是微不足道的。Beetl 准备解决此映射问题,使得界面开发人员和后台开发人员彻底分离,各专注做自己的领域。

背景:
一个很简单例子说明业务模型到视图模型的差距,如下类
public class Person{
String name;
int gender = 0;
}

在MVC中,仅仅讲person 作为M 来视图完成界面开发,是不够的,实际上需要如下对象

pulic class PersonView{
String name;
int gender = 0;
String genderDisplayName;
Map allGenders ;
}

genderDisplayName 在运行时候根据gender值来赋值,同时allGenders 放入了所有的性别描述用于显示


如果不创建PersonView,前段开发人员只能视图页面调用逻辑代码去判断,这即影响了界面效果,也要求界面开发人员熟悉业务代码。

Beetl 解决方法

Beetl 允许创建视图模型来弥补业务模型在view层的不足,如下模拟代码

====== PersonView.beetl =========
VObject PersonView ref com.biz.Person as p {
genderDsiplayName:@util.cached.getGender(p.gender);
allGenders :@util.cached.allGender();
}


java端代码如下:

BeeTemplate template = group.getTemplate("personInfo.html");
template.set("person",template.creteVObject("PersonView.beetl").addRefredne("p",person)
System.out.println(template.getTextAsString())

其中 PersonView.beetl 是由后台人员完成

了解更多beetl 参考http://beetl.sourceforge.net/

Reply all
Reply to author
Forward
0 new messages