這里的VO,PO不是我們以前通常所說(shuō)的VO及PO,而是EasyJWeb中引入的一些概念。
在Java?Web應(yīng)用開(kāi)發(fā)中,若按照面向?qū)ο蟮姆椒▉?lái)思考,則我們認(rèn)為有兩種基本的對(duì)象,一種是html頁(yè)面上的表單元素。這個(gè)表單元素包括form標(biāo)簽中的field,也包括通過(guò)url中的"?"號(hào)方式傳到服務(wù)器的數(shù)據(jù)元素,這個(gè)我們暫且取名為:顯示層對(duì)象(View?Object)。另外一種是Java應(yīng)用程序中的實(shí)際對(duì)象,如一個(gè)用戶(hù)對(duì)象、一個(gè)論壇帖子等,我們暫且命名為:程序(真實(shí))對(duì)象(Program?Object或Real?Object)。
EasyJWeb由于采用的是程序及頁(yè)面完全分離,也即程序員及頁(yè)面設(shè)計(jì)人員的工作是完全分離的。所以在用EasyJWeb做應(yīng)用的時(shí)候關(guān)于顯示層對(duì)象(View?Object)及程序(真實(shí))對(duì)象(Program?Object或Real?Object)的轉(zhuǎn)換是隨時(shí)都需要用到的。
在EasyJWeb的設(shè)計(jì)中,WebForm基本代表了示層對(duì)象(View?Object),我們直接通過(guò)WebForm類(lèi)或其子類(lèi)對(duì)象的toPo、addPo、addResult等方法實(shí)現(xiàn)兩種對(duì)象的轉(zhuǎn)換。
在EasyJWeb文檔中,示例3有一個(gè)關(guān)于數(shù)據(jù)庫(kù)添刪改查應(yīng)用的中,關(guān)于兩種顯示層對(duì)象到程序真實(shí)對(duì)象的轉(zhuǎn)換,代碼如下:
public?Object?form2Obj(WebForm?form)?{
???????String?cid=(String)form.get("cid");
???????User?user=null;
???????if(cid!=null?&&?(!cid.equals("")))user=User.read(cid);
???????if(user==null)user=new?User();
???????return?form.toPo(user);
???}
其中form.toPo(user)表示把表單中的用戶(hù)數(shù)據(jù)轉(zhuǎn)換到到程序真實(shí)對(duì)象user中。
??
下面我們看看WebForm中的有關(guān)代碼,在當(dāng)前版本只是作最簡(jiǎn)單的轉(zhuǎn)換,在以后還會(huì)進(jìn)行完善:
//把form表單的數(shù)據(jù)轉(zhuǎn)換成Object對(duì)象
public?Object?toPo(Object?obj)
{????
???CommUtil.Map2Obj(this.getTextElement(),obj);
???return?obj;
}
//把form表單中的數(shù)據(jù)轉(zhuǎn)換成classType類(lèi)對(duì)象
public?Object?toPo(Class?classType)
{????
???Object?obj=null;
???try{
???obj=classType.newInstance();
???CommUtil.Map2Obj(this.getTextElement(),obj);
???}
???catch(Exception?e)
???{
???????e.printStackTrace();
???}
???return?obj;
}
//PO對(duì)象中的數(shù)據(jù)存放到FORM對(duì)象中
public?void?addPo(Object?obj)
{
???if(obj!=null)
???CommUtil.Obj2Map(obj,this.getTextElement());
}
當(dāng)然,在Java領(lǐng)域,老外及前輩們?cè)趈ava程序(真實(shí))對(duì)象這塊已經(jīng)有了很多研究,也有很多名字,如VO,PO等。大家可以baidu一下在對(duì)象持久化中有關(guān)VO、PO等的一些資料。
致于XO嘛,暫時(shí)還沒(méi)有哈。
![[:E]](http://www.javaresearch.org/faces/13.gif)
?
附:
EasyJWeb簡(jiǎn)介 EasyJWeb是基于java技術(shù),應(yīng)用于WEB應(yīng)用程序快速開(kāi)發(fā)的MVC框架,框架設(shè)計(jì)構(gòu)思來(lái)源于國(guó)內(nèi)眾多項(xiàng)目實(shí)踐,充分借簽了當(dāng)前主要流行(主流)的開(kāi)源Web框架(Struts、JSF、Tapestry?、Webwork),吸取了其優(yōu)點(diǎn)及精華,利用Velocity作為模板頁(yè)面引擎,是一個(gè)實(shí)現(xiàn)了頁(yè)面及代碼完全分離的MVC開(kāi)發(fā)框架,是一個(gè)旨在于為中小型Web應(yīng)用系統(tǒng)提供快速開(kāi)發(fā)實(shí)踐的簡(jiǎn)易Web框架。
EasyJF開(kāi)源團(tuán)隊(duì)于2006年初才開(kāi)始建設(shè),因此當(dāng)前整個(gè)開(kāi)發(fā)團(tuán)隊(duì)組建以及所發(fā)布的作品,都顯得極不成熟。EasyJWeb仍然處于測(cè)試階段,懇請(qǐng)請(qǐng)廣大的Java愛(ài)好者多多批評(píng)及建議。同進(jìn)也非常歡迎您能加入到我們的國(guó)產(chǎn)開(kāi)源隊(duì)伍中。
EasyJWeb官方網(wǎng)址:
www.easyjf.com????EasyJF團(tuán)隊(duì)官方網(wǎng)址:
www.easyjf.com?
posted on 2006-03-28 22:35
簡(jiǎn)易java框架 閱讀(477)
評(píng)論(0) 編輯 收藏