freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

easyjweb入門手冊(cè)-資料下載頁

2025-06-25 06:36本頁面
  

【正文】 ryService service) { = service。 } public void doList(WebForm form, Module module){ QueryObject query = new QueryObject()。 (query)。 IPageList pageList = (query)。 (pageList, form)。 } public void doEdit(WebForm form, Module module){ Long id = (((id)))。 ((id))。 } public void doSave(WebForm form, Module module){ SystemDictionary dic = ()。 (dic)。 } public void doDel(WebForm form, Module module){ Long id = (((id)))。 (id)。 } public void doUpdate(WebForm form, Module module){ Long id = (((id)))。 SystemDictionary dic = (id)。 (dic)。 (id, dic)。 }}AbstractPageCmdAction 類繼承自AbstractCmdAction,這個(gè)類里邊重寫了execute方法,它先調(diào)用父類的execute方法,然后對(duì)父類的execute方法返回的值進(jìn)行判斷,如果為空并且easyJWebCommand參數(shù)值不為空,就會(huì)根據(jù)調(diào)用的Action類的名字和easyJWebCommand參數(shù)的值來創(chuàng)建一個(gè)Page對(duì)象返回給框架。這個(gè)Action與前一個(gè)Action相比,可以看出來,所有的doXxxx()方法都是void的了,不再return一個(gè)Page對(duì)象了。這就是AbstractPageCmdAction的作用,它會(huì)根據(jù)你調(diào)用的Action類的名字和客戶端提交進(jìn)來的命令參數(shù)的值自動(dòng)創(chuàng)建一個(gè)Page對(duì)象,從而實(shí)現(xiàn)零配置,開發(fā)人員可以專注于業(yè)務(wù)邏輯,不用再關(guān)心流程控制。這樣一來開發(fā)是不是又變得簡單了一些、快捷了一些?但是我們的目標(biāo)是不斷前進(jìn)的,我們不會(huì)滿足現(xiàn)狀,我們要越來越快。好的,激動(dòng)人心的時(shí)刻到來了,前面我們講解的兩個(gè)類雖然使開發(fā)已經(jīng)很方便了,但是我們可以看到,()、()等方法,并且很多方法中都有著這樣一些相同的代碼,那么我們是否能夠再封裝一下呢?現(xiàn)在我們來看看AbstractCrudAction 類的使用。還是同樣的應(yīng)用:public class SystemDictionaryAction extends AbstractCrudAction { private ISystemDictionaryService service。 public void setService(ISystemDictionaryService service) { = service。 } @SuppressWarnings(unchecked) protected Class entityClass() { return 。 } protected Object findEntityObject(Serializable id) { return ((Long) id)。 } protected IPageList queryEntity(IQueryObject queryObject) { return (queryObject)。 } protected void removeEntity(Serializable id) { ((Long) id)。 } protected void saveEntity(Object object) { ((SystemDictionary) object)。 } protected void updateEntity(Object object) { (((SystemDictionary) object).getId(),(SystemDictionary) object)。 }}我們可以看到Action的代碼少了很多,業(yè)務(wù)邏輯的處理完全封裝了,每個(gè)操作都只需要一條調(diào)用語句即可。現(xiàn)在我們來分析一下代碼。首先,Action里多出了一個(gè)方法entityClass(),這個(gè)方法是AbstractCrudAction 里申明的一個(gè)抽象方法,它在沒個(gè)Action里邊的實(shí)現(xiàn)都不一樣,分別返回各自要操作的類,提供給AbstractCrudAction 里實(shí)現(xiàn)的一些業(yè)務(wù)邏輯方法使用。接下來,我們會(huì)發(fā)現(xiàn)方法的命名也和以前不一樣了,這里沒有了doXxxx()方法,取而代之的是xxxxEntity()方法。這些方法都是在父類AbstractCrudAction 里申明的抽象方法,在每個(gè)不同的Action里實(shí)現(xiàn),AbstractCrudAction 里的業(yè)務(wù)邏輯方法調(diào)用這些不同的實(shí)現(xiàn)分別執(zhí)行不同的操作,巧妙的對(duì)通用性比較強(qiáng)的代碼進(jìn)行了封裝,使開發(fā)變得更加簡單快捷。假設(shè)命令參數(shù)值為save,在這里將不再執(zhí)行doSave()方法,而是執(zhí)行saveEntity()方法。這里并不是去掉了doXxxx()方法,而是將這些方法放到了AbstractCrudAction類里邊,這里的saveEntyti()方法會(huì)被父類的doSave()方法調(diào)用,因此實(shí)際上還是調(diào)用了doSave()方法,只不過這個(gè)方法不需要開發(fā)人員自己來申明和實(shí)現(xiàn)了。
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1