金蝶BOS開發(fā)工程師基礎(chǔ)認(rèn)證培訓(xùn)Web框架_第1頁
金蝶BOS開發(fā)工程師基礎(chǔ)認(rèn)證培訓(xùn)Web框架_第2頁
金蝶BOS開發(fā)工程師基礎(chǔ)認(rèn)證培訓(xùn)Web框架_第3頁
金蝶BOS開發(fā)工程師基礎(chǔ)認(rèn)證培訓(xùn)Web框架_第4頁
金蝶BOS開發(fā)工程師基礎(chǔ)認(rèn)證培訓(xùn)Web框架_第5頁
已閱讀5頁,還剩77頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

金蝶BOSWeb框架金蝶軟件(中國(guó))有限公司資冰冰目錄總體架構(gòu)JSFFaceletsExtAOMWAFWeb開發(fā)調(diào)試總體架構(gòu)金蝶開發(fā)平臺(tái)基于aom開發(fā),aom的底層技術(shù)為JSF,表現(xiàn)層采用ext和FaceletsJSF是什么JavaServerFaces(JSF,或者“Faces”)是一個(gè)構(gòu)建JavaWeb應(yīng)用的UI框架;它基于Java社區(qū)流程(JCP)開發(fā),并且成為J2EE的一個(gè)組成部分。Faces的一個(gè)主要目標(biāo)是為JavaWeb應(yīng)用開發(fā)領(lǐng)域帶來RAD風(fēng)格的應(yīng)用開發(fā),就像MicrosoftVisualBasic和BorlandDelphi一樣。JSF提供一系列標(biāo)準(zhǔn)部件(按鈕、超鏈接、復(fù)選框等等),一個(gè)創(chuàng)建定制組件的模型,以及在服務(wù)器端處理客戶端產(chǎn)生事件的方式,并且有良好的工具支持。你可以同步UI組件和相關(guān)對(duì)象的值,而不必編輯太多令人生厭的代碼。所有的JSF應(yīng)用都構(gòu)建于ServletAPI之上,使用HTTP進(jìn)行通信,并且使用JSP.之類的顯示技術(shù)JSF與Struts區(qū)別JSF包含什么JSF生命周期JSF生命周期構(gòu)建復(fù)原組件樹視圖(RestoreViewPhase)JSF組件樹用來構(gòu)建和維護(hù)頁的狀態(tài)和事件。對(duì)于每個(gè)會(huì)話,將會(huì)構(gòu)建一次樹,并且當(dāng)用戶返回到該頁時(shí)復(fù)用該樹。在此階段的末尾,當(dāng)前請(qǐng)求的FacesContext實(shí)例的根屬性反映由先前的“Faces響應(yīng)”生成的視圖的已保存配置(如果有的話)。JSF生命周期應(yīng)用請(qǐng)求值請(qǐng)求處理生命周期這一階段的目的是使當(dāng)前請(qǐng)求中包括的信息更新各組件的當(dāng)前值(如參數(shù)、標(biāo)題和cookie)更新到相應(yīng)組件樹中的每個(gè)組件。從這里我們可以看到,從客戶端發(fā)過來的請(qǐng)求是么種意義上的純文本信息,而UI組件對(duì)應(yīng)的是java實(shí)體,這里必然就存在了數(shù)據(jù)格式轉(zhuǎn)換的問題。所以,在整個(gè)生命周期中,這個(gè)地方就成了數(shù)據(jù)轉(zhuǎn)換發(fā)生的特定階段(如:數(shù)據(jù)、日期顯示格式)。JSF生命周期處理驗(yàn)證為保證上一個(gè)階段的數(shù)據(jù)正確,特定抽取了這個(gè)階段作為數(shù)據(jù)校驗(yàn)。在這里作為創(chuàng)建此請(qǐng)求的視圖的一部分,可以為每個(gè)組件注冊(cè)零個(gè)或多個(gè)驗(yàn)證器實(shí)例。另外,組件類自身也可以在它們的validate()方法中實(shí)現(xiàn)驗(yàn)證邏輯。在此階段的末尾,會(huì)完成所有配置的驗(yàn)證。JSF生命周期更新模型值如果到達(dá)了請(qǐng)求處理生命周期的這一階段,就意味著入局請(qǐng)求根據(jù)所執(zhí)行的驗(yàn)證在語法和語義上都是有效的,且組件樹中每一組件的本地值都已被更新,這一階段主要通過調(diào)用組建樹的每個(gè)UI組件的processUpdates()方法,遞歸更新每個(gè)組件樹對(duì)應(yīng)的應(yīng)用程序的模型數(shù)據(jù)JSF生命周期調(diào)用應(yīng)用程序如之前構(gòu)建復(fù)原視圖時(shí)所述,如果當(dāng)前請(qǐng)求的視圖是根據(jù)先前請(qǐng)求保存的狀態(tài)信息重新構(gòu)造的,則JSF實(shí)現(xiàn)就能夠確保通過在此Web應(yīng)用程序的“應(yīng)用程序”對(duì)象上調(diào)用getActionListener。JSF生命周期呈現(xiàn)響應(yīng)此階段同時(shí)完成兩項(xiàng)任務(wù):使響應(yīng)呈示給客戶機(jī),以及使響應(yīng)的狀態(tài)得到保存以供后續(xù)請(qǐng)求處理之用。在一個(gè)階段中同時(shí)處理這兩項(xiàng)任務(wù)的原因是在JSP應(yīng)用程序中呈示響應(yīng)的行為會(huì)導(dǎo)致在呈示頁面時(shí)構(gòu)建視圖。因此,要在視圖的狀態(tài)被呈示給客戶機(jī)之后才能保存該狀態(tài)。為什么要選用JSF對(duì)于RAD工具的四個(gè)層次,JavaServerFaces定義了其中3個(gè):一個(gè)基礎(chǔ)組件架構(gòu),一個(gè)標(biāo)準(zhǔn)的UI部件集,以及一個(gè)應(yīng)用基礎(chǔ)架構(gòu)。JSF的組件架構(gòu)定義了一個(gè)通用的方式來建立UI部件JavaServerFaces有一個(gè)特定的目標(biāo):使web開發(fā)更快更容易。它允許開發(fā)人員以組件,事件,BackingBean以及它們之間的交互來進(jìn)行思考,而不是基于請(qǐng)求,響應(yīng)和標(biāo)記。換句話說,它掩蓋了Web開發(fā)的大量的復(fù)雜性,使開發(fā)人員能夠集中于他們最擅長(zhǎng)的事情:開發(fā)應(yīng)用系統(tǒng)。典型例子Hello,worldFaceletsFacelets非常適合JSF,專為JSF設(shè)計(jì)的視圖技術(shù)Facelets是用來建立JSF應(yīng)用程序時(shí)的一個(gè)可供選擇的表現(xiàn)層技術(shù)。Facelets提供了一個(gè)強(qiáng)有力的模板化系統(tǒng),讓你使用HTML樣式的模板來定義JSF的表現(xiàn)層,減少了組件整合進(jìn)表現(xiàn)層時(shí)候冗余的代碼,而不需要一個(gè)web容器FaceletsFacelets有以下吸引人的特性:模板化(像Tiles)復(fù)合組件定制的邏輯標(biāo)記表達(dá)式語言對(duì)設(shè)計(jì)師友好的頁面開發(fā)創(chuàng)建組件庫用Facelets進(jìn)行模板化(定義模版)創(chuàng)建layout.xhtml頁面。定義Facelet的命名空間,導(dǎo)入對(duì)Facelets的使用。用ui:insert標(biāo)記定義頁面的邏輯區(qū)域。用純文本和ui:include標(biāo)記定義合理的默認(rèn)值用Facelets進(jìn)行模板化(使用模版)當(dāng)頁面調(diào)用布局模板時(shí),需要指定模板的位置使用ui:composition標(biāo)記。為了把參數(shù)傳遞給模板,要使用ui:define標(biāo)記,它是ui:composition標(biāo)記的子元素復(fù)合組件不要重復(fù)自己

Facelets把它的精華放在復(fù)合組件上復(fù)合組件的創(chuàng)建創(chuàng)建Facelets標(biāo)記庫。在web.xml中聲明標(biāo)記庫。用命名空間導(dǎo)入標(biāo)記文件ExtJsExtJS可以用來開發(fā)RIA也即富客戶端的AJAX應(yīng)用,是一個(gè)用javascript寫的,主要用于創(chuàng)建前端用戶界面,是一個(gè)與后臺(tái)技術(shù)無關(guān)的前端ajax框架。因此,可以把ExtJS用在.Net、Java、Php等各種開發(fā)語言開發(fā)的應(yīng)用中ExtJS由一系列的類庫組成,一旦頁面成功加載了ExtJS庫后,我們就可以在頁面中通過javascript調(diào)用ExtJS的類及控件來實(shí)現(xiàn)需要的功能EXTJSExtJS的類庫由以下幾部分組成底層API(core):底層API中提供了對(duì)DOM操作、查詢的封裝、事件處理、DOM查詢器等基礎(chǔ)的功能。其它控件都是建立在這些底層api的基礎(chǔ)上,底層api位于源代碼目錄的core子目錄中,包括DomHelper.js、Element.js等文件Extjs控件(widgets):控件是指可以直接在頁面中創(chuàng)建的可視化組件,比如面板、選項(xiàng)板、表格、樹、窗口、菜單、工具欄、按鈕等等,在我們的應(yīng)用程序中可以直接通過應(yīng)用這些控件來實(shí)現(xiàn)友好、交互性強(qiáng)的應(yīng)用程序的UI??丶挥谠创a目錄的widgets子目錄中ExtJs實(shí)用工具Utils:Ext提供了很多的實(shí)用工具,可以方便我們實(shí)現(xiàn)如數(shù)據(jù)內(nèi)容格式化、JSON數(shù)據(jù)解碼或反解碼、對(duì)Date、Array、發(fā)送Ajax請(qǐng)求、Cookie管理、CSS管理等擴(kuò)展等功能ExtJs組件Ext組件是由Component類定義,每一種組件都有一個(gè)指定的xtype屬性值,通過該值可以得到一個(gè)組件的類型或者是定義一個(gè)指定類型的組件。組件體系ExtJs組件使用組件可以直接通過new關(guān)鍵子來創(chuàng)建,比如控件一個(gè)窗口,使用newExt.Window(),創(chuàng)建一個(gè)表格則使用newExt.GridPanel()組件的構(gòu)造函數(shù)中一般都可以包含一個(gè)對(duì)象,這個(gè)對(duì)象包含創(chuàng)建組件所需要的配置屬性及值,組件根據(jù)構(gòu)造函數(shù)中的參數(shù)屬性值來初始化組件ExtJs組件每一個(gè)組件除了繼承基類中的配置屬性以外,還會(huì)根據(jù)需要增加自己的配置屬性,另外子類中有的時(shí)候還會(huì)把父類的一些配置屬性的含義及用途重新定義。學(xué)習(xí)及使用ExtJS,其中最關(guān)鍵的是掌握ExtJS中的各個(gè)組件的配置屬性及具體的含義/deploy/dev/docs/AOMAOM:ApusicOperaMask,金蝶中間件公司的Web開發(fā)框架AOM完整實(shí)現(xiàn)了JSF1.2規(guī)范,同時(shí),對(duì)JSF1.2規(guī)范做了大量擴(kuò)充,主要有AJAX支持、IoVC編程模型AOM架構(gòu)圖AOM對(duì)Web組件的擴(kuò)展標(biāo)準(zhǔn)的JSF提供了與HTML元素一一對(duì)應(yīng)的Web組件,標(biāo)準(zhǔn)的JSFWeb組件基本上不能滿足業(yè)務(wù)開發(fā)要求AOM在此基礎(chǔ)上提供了一套基于ExtJS的RichComponents,根據(jù)ExtJS所提供的客戶端組件模型,提供了相應(yīng)的服務(wù)器端組件模型、事件和組件渲染器,服務(wù)器端組件模型可以被復(fù)用,與具體的組件表現(xiàn)形式無關(guān)。而組件的渲染器可以自行以替換的方式進(jìn)行擴(kuò)展AOM對(duì)Web組件的擴(kuò)展組件使用方式<w:textFieldbinding="#{***ListBean.number}"value=""/><w:buttonid=“btnAddNew”value=“新增" actionBinding="#{***ListBean.addNewAction}"/>通過指定控件屬性jsvar,可以用extjsapi在頁面訪問/help/index.jsp?topic=/org.operamasks.docs/output/eclipse/index.htmlAOM約定優(yōu)于配置目前主流的一些框架如(Struts和spring)通過很多配置實(shí)現(xiàn)對(duì)象的依賴注入AOM中通過約定優(yōu)于配置的規(guī)則,實(shí)現(xiàn)對(duì)象的注入AOM數(shù)據(jù)校驗(yàn)簡(jiǎn)單校驗(yàn)Annotation:@Required客戶端校驗(yàn)<w:formid=“form1"clientValidate="true">自定義校驗(yàn)完整上下文校驗(yàn)

AOMJSF生命周期攔截默認(rèn)提供@BeforePhase、@AfterPhase的標(biāo)注式攔截其他生命周期可擴(kuò)展AOMMBean編程模型AOM對(duì)標(biāo)準(zhǔn)JSF的ManagedBean進(jìn)行了擴(kuò)展:聲明式定義ManagedBeanAOM提供了@ManagedBean、@ManagedProperty等一系列標(biāo)簽,可以使用這些標(biāo)簽來以聲明方式定義ManagedBean通過@Inject注入其他ManagedBean

AOMIOVCIoVC——“InversionofView-Control”,即“視圖控制反轉(zhuǎn)”傳統(tǒng)的JSF編程模式傳統(tǒng)方式的JSF設(shè)計(jì)中,UI所展現(xiàn)出來的數(shù)據(jù)通常位于ManagedBean中,UI上需要與用戶交互的行為(Action)也定義在ManagedBean中,在UI中通過EL表達(dá)式,將每個(gè)組件與ManagedBean中所持有的數(shù)據(jù)綁定起來。如:<h:outputTextvalue="#{DemoBean.clickText}"/><h:commandButtonaction="#{DemoBean.action}"/>這是以視圖為控制導(dǎo)向的一種設(shè)計(jì)模式,視圖必須知道其所要綁定的ManagedBean及其屬性和行為,這在一定程度上限制了UI的重用。AOMIOVCIoVC定義了一系列的標(biāo)注用于將Model與View上的元素對(duì)應(yīng),開發(fā)者通過在Model上聲明這種對(duì)應(yīng)關(guān)系,可以將視圖上的元素與Model中的屬性和方法對(duì)應(yīng)起來在IoVC編程模式下,組件只需簡(jiǎn)單的聲明id屬性即可與Model進(jìn)行關(guān)聯(lián)WAFWAFwebapplicationframeworkWAF作用Web開發(fā)平臺(tái)的核心職能類似GUI框架,是EASWeb產(chǎn)品開發(fā)的基礎(chǔ)平臺(tái),跟GUI應(yīng)用框架共用EASWeb服務(wù)端組件,協(xié)同BOS框架和業(yè)務(wù)模型(BIM)實(shí)現(xiàn)模型驅(qū)動(dòng)架構(gòu)(MDA)。它提供統(tǒng)一的業(yè)務(wù)開發(fā)模型,簡(jiǎn)化開發(fā)邏輯,形成一致的開發(fā)模式,最大限度實(shí)現(xiàn)代碼的重用機(jī)制WAFWAF有什么

1.web應(yīng)用框架體系為業(yè)務(wù)單據(jù)提供復(fù)用體系2.UI通用處理如RPC交互、數(shù)據(jù)綁定、異常處理、通用查詢等3.業(yè)務(wù)服務(wù)調(diào)用如權(quán)限控制、BOTP、工作流等4.某些控件如F7,枚舉框,多語言控件,LabelContainer等web應(yīng)用框架體系序時(shí)簿W(wǎng)af序時(shí)簿列表界面(ListWinlet)ManagedBean從ListBean繼承,請(qǐng)實(shí)現(xiàn)如下方法:getQueryPK()要求返回查詢當(dāng)前列表數(shù)據(jù)結(jié)果的QueryPKgetEditBeanName()要求返回列表對(duì)象對(duì)應(yīng)的編輯界面的ManagedBean的名稱getEditUrl()要求返回列表對(duì)象對(duì)應(yīng)的編輯界面的UrlgetBizInterface()類似編輯界面的同樣接口實(shí)現(xiàn)。該業(yè)務(wù)接口的獲取可以通過注入方式實(shí)現(xiàn)WAF@IBOSBizCtrl標(biāo)簽本注釋型負(fù)責(zé)對(duì)BOSIBizCtrl(IBOSObject以及FunctionEJB接口對(duì)象)進(jìn)行統(tǒng)一的注入控制,以及屏蔽與BOS服務(wù)端交互的復(fù)雜性例如:@IBOSBizCtrl

privateIPurReqservice;Waf序時(shí)簿模版templates/list-templates.xhtml定義了列表界面的布局模板,業(yè)務(wù)單據(jù)的列表界面視圖從此模板繼承,并提供相應(yīng)的模板內(nèi)容實(shí)現(xiàn)具體使用可以參照Facelets章節(jié)Waf序時(shí)簿組件WEB-INF/components/billList-toolbar.xhtml封裝了單據(jù)列表界面工具條部分的內(nèi)容,提供了標(biāo)準(zhǔn)的操作按鈕以及統(tǒng)一的Action綁定,相關(guān)業(yè)務(wù)使用此組件時(shí)只需設(shè)置組件的beanName屬性即可例子:<f:viewxmlns:biz=/jsf/biz renderKitId="AJAX"> <ui:definename="toolbar"><biz:billListToolbarbeanName="#{mydemo.PurReqListBean}"> </biz:billListToolbar></ui:define>Waf序時(shí)簿組件WEB-INF/components/baseList-toolbar.xhtml

封裝了基礎(chǔ)資料列表界面工具條部分的內(nèi)容,提供了標(biāo)準(zhǔn)的操作按鈕以及統(tǒng)一的Action綁定,相關(guān)業(yè)務(wù)使用此組件時(shí)只需設(shè)置組件的beanName屬性即可例子:<f:view

xmlns:biz=http:///jsf/biz

renderKitId="AJAX"> <ui:definename="toolbar"><biz:baseListToolbar

beanName="#{com.kingdee.demo.CurrencyListBean}"> </biz:baseListToolbar> </ui:define>Waf序時(shí)簿組件WEB-INF/components/inner-window.xhtml封裝了列表界面跟其他頁面進(jìn)行Ajax交互的載體,支持UIWindow的彈出框(適用于通用過濾等),也支持其他通過javascript腳本彈出的對(duì)話框或新窗口(例如編輯界面或BOTP轉(zhuǎn)換界面等)例子:<f:viewxmlns:biz=/jsf/biz

renderKitId="AJAX"> <ui:definename="inner-window">

<biz:innerWindowbeanName="#{mydemo.PurReqListBean}"> </biz:innerWindow>

</ui:define>Waf編輯界面類圖

Waf編輯界面編輯界面(EditWinlet)ManagedBean從EditBean繼承,請(qǐng)實(shí)現(xiàn)如下幾個(gè)方法:createNewModel:新增業(yè)務(wù)對(duì)象getBizInterface:業(yè)務(wù)操作接口,該業(yè)務(wù)接口的獲取可以通過注入方式實(shí)現(xiàn),注入方式和ListBean類似可選實(shí)現(xiàn):getSelectors獲取所選單據(jù)VO屬性,子類可覆蓋實(shí)現(xiàn)Updatemodel單據(jù)若含有分錄,更新分錄modelWaf編輯界面模版templates/edit-templates.xhtml定義了編輯界面的布局模板,業(yè)務(wù)單據(jù)的編輯界面視圖從此模板繼承,并提供相應(yīng)的模板內(nèi)容實(shí)現(xiàn)

Waf編輯界面組件WEB-INF/components/billEdit-actions.xhtml封裝了編輯界面下方按鈕部分的內(nèi)容,提供了標(biāo)準(zhǔn)的操作按鈕以及統(tǒng)一的Action綁定,相關(guān)業(yè)務(wù)使用此組件時(shí)只需設(shè)置組件的beanName屬性即可例子:<f:viewxmlns:biz=/jsf/biz

renderKitId="AJAX"><ui:definename="actions"> <divclass="kd-panel-btns-right"><biz:billEditActionsbeanName="#{mydemo.PurReqEditBean}"></biz:billEditActions> </div></ui:define>Waf編輯界面組件WEB-INF/components/billEntry-actions.xhtml 封裝了分錄的基本操作以及統(tǒng)一的Action綁定,相關(guān)業(yè)務(wù)使用此組件時(shí)只需設(shè)置組件的beanName屬性即可例子:<f:viewxmlns:biz=/jsf/biz

renderKitId="AJAX"><ui:definename="entry>"><divclass="kd-panel-btns-right"><biz:billEntryActionsbeanName="#{mydemo.PurReqEditBean}" entryBeanName="#{mydemo.PurReqEntryBean}"> </biz:billEntryActions></div> </ui:define>Waf編輯界面組件WEB-INF/components/billEdit-toolbar.xhtml封裝了單據(jù)與其他單據(jù)相關(guān)常用功能的操作及Action綁定,例如上一個(gè)單據(jù)、下一個(gè)單據(jù)、單據(jù)轉(zhuǎn)換等,相關(guān)業(yè)務(wù)使用此組件時(shí)只需設(shè)置組件的beanName屬性即可Waf編輯界面組件WEB-INF/components/billEdit-actions.xhtml封裝了編輯界面下方按鈕部分的內(nèi)容,提供了標(biāo)準(zhǔn)的操作按鈕以及統(tǒng)一的Action綁定,相關(guān)業(yè)務(wù)使用此組件時(shí)只需設(shè)置組件的beanName屬性即可例子:<f:viewxmlns:biz=/jsf/biz

renderKitId="AJAX"><ui:definename="actions"> <divclass="kd-panel-btns-right"><biz:billEditActionsbeanName="#{mydemo.PurReqEditBean}"></biz:billEditActions> </div></ui:define>WafUI通用處理數(shù)據(jù)綁定JSF體系本身提供了完善的數(shù)據(jù)綁定功能,不需要類似GUI的loadFields及storeFields等自己處理。對(duì)于一些特定類型的屬性綁定,框架提供常用的Converter處理,包括IObjectValueConverter、BOSUUidConverter、DataTimeConverter等。支持EL表達(dá)式;可以綁定簡(jiǎn)單數(shù)據(jù)類型(string,int,float等);可以通過數(shù)據(jù)類型轉(zhuǎn)換器綁定復(fù)雜數(shù)據(jù)類型(任意數(shù)據(jù)類型);支持表格、F7的數(shù)據(jù)綁定;WafUI通用處理多語言處理服務(wù)端多語言處理Web框架基類BaseBean提供了getResoureText(Stringkey)方法,從文件名等于類名的多語言文件中獲取多語言文本;com.kingdee.bos.waf.resource.Resources提供了getText(Stringbundle,Stringkey)方式更加靈活的獲取多語言信息??蛻舳薐SF視圖標(biāo)簽多語言處理通過EL表達(dá)式獲取多語言信息:#{messages[‘資源鍵’]}客戶端javascript腳本多語言處理對(duì)于jsp視圖,通過擴(kuò)展jsp的TagSupport,實(shí)現(xiàn)把服務(wù)端資源文件動(dòng)態(tài)生成客戶端javascript多語言腳本數(shù)組,然后在js腳本中通過操作此數(shù)據(jù)來獲取相應(yīng)的多語言信息;對(duì)于facelet視圖,需要通過擴(kuò)展TagHandler來實(shí)現(xiàn)jsp一樣的標(biāo)簽功能,對(duì)于視圖部分使用上對(duì)開發(fā)者是一致的。 用法:在JSF視圖中申明 <kd:jsMessageBundlejsVar="resource"resourceName="#{myBean.resourceName}“l(fā)ocale=“#{myBean.locale}”/>,然后就可以在javascript中使用resource[“key”]即可獲取對(duì)應(yīng)的多語言字符。WafUI通用處理應(yīng)用上下文WafUI通用處理異常處理HTTP錯(cuò)誤異常包括用戶訪問的url不存在、會(huì)話失效、訪問拒絕等,框架統(tǒng)一攔截,導(dǎo)航到統(tǒng)一的友好頁面系統(tǒng)異常包括數(shù)據(jù)庫取數(shù)出錯(cuò)、代碼運(yùn)行空指針等,框架統(tǒng)一攔截,如果是ajax請(qǐng)求,彈出錯(cuò)誤提示框;如果非ajax請(qǐng)求,導(dǎo)航到統(tǒng)一頁面用戶異常主要是便于開發(fā)人員把自己認(rèn)為的異常邏輯或者在應(yīng)用中出現(xiàn)的問題展現(xiàn)出來,框架統(tǒng)一攔截處理,異常處理方式跟上面“系統(tǒng)異?!碧幚硪粯覹afUI通用處理通用過濾通用過濾默認(rèn)過濾只需要在XXXListBean實(shí)現(xiàn)getQueryPK()即可自定義過濾頁面提供一個(gè)繼承monquery.UserQueryBean的ManagedBean,假如為MyUserQueryBean,同時(shí)還有相應(yīng)的Facelets視圖,myUserQuery.xhtml;在序時(shí)簿ManagedBean里,覆蓋getUserQueryView()方法,返回上面的Facelets視圖路徑,例如:@Override protectedStringgetUserQueryView(){

return"/mydemo/myUserQuery.xhtml";}Waf業(yè)務(wù)服務(wù)調(diào)用單據(jù)套打框架已經(jīng)提供默認(rèn)實(shí)現(xiàn),用戶只需要定義套打模板即可通過導(dǎo)出PDF方式實(shí)現(xiàn)網(wǎng)絡(luò)互斥數(shù)據(jù)互斥避免同時(shí)編輯同一張單據(jù)日志框架默認(rèn)已經(jīng)提供,業(yè)務(wù)開發(fā)無需編碼色彩方案目前支持藍(lán)、綠、紅、橙四種色彩方案,默認(rèn)藍(lán)色支持?jǐn)U展(增加相應(yīng)的色彩方案目錄結(jié)構(gòu))Waf業(yè)務(wù)服務(wù)調(diào)用—權(quán)限權(quán)限控制頁面訪問權(quán)限頁面按鈕權(quán)限Waf業(yè)務(wù)服務(wù)調(diào)用—編碼規(guī)則應(yīng)用編碼規(guī)則服務(wù)定義相關(guān)編碼規(guī)則,然后再Web單據(jù)里直接根據(jù)規(guī)則自動(dòng)生成編碼Waf業(yè)務(wù)服務(wù)調(diào)用—工作流單據(jù)的提交及工作流審批Waf業(yè)務(wù)服務(wù)調(diào)用—工作流Waf業(yè)務(wù)服務(wù)調(diào)用—Botp配置BOTP規(guī)則Waf業(yè)務(wù)服務(wù)調(diào)用—Botp在費(fèi)用申請(qǐng)單通過[關(guān)聯(lián)生成]操作完成費(fèi)用報(bào)銷單的生成Waf控件F7<kd:promptBox>容器控件<kd:container>復(fù)合控件<kd:labelContainer>枚舉控件<kd:enumCombo>多語言控件<kd:multiLangBox>Waf控件F7主要屬性:queryInfo:定義queryviewUrl屬性定義打開自定義url,不寫將使用通用f7界面。diaplayFormat:'$name$'F7默認(rèn)顯示效果editFormat:'$number$'F7編輯時(shí)效果commitFormat:'$number$'popWidth:打開窗口寬popHeight:打開窗口高muti:是否為多選模式store:綁定后臺(tái)默認(rèn)的數(shù)據(jù)集合,用于回填編輯table頁面cu:是否cu過濾orgType:對(duì)應(yīng)的組織類型filterInfo:缺省的過濾條件permItemName:缺省綁定的權(quán)限項(xiàng)Waf控件F7F7修改后如果需要觸發(fā)服務(wù)端事件,可以通過ajaxaction,直接綁定datachanged屬性的el表達(dá)式<kd:promptBoxvalue="#{mydemo.PurReqEditBean.model.currency}"queryInfo="com.kingdee.eas.basedata.assistant.app.CurrencyQuery"><ajax:actionevent="datachanged"action="#{mydemo.PurReqEntryBean.removeRow}"/></kd:promptBox>F7修改后如果需要觸發(fā)客戶端事件<kd:promptBoxjsvar=”F7”value="#{mydemo.PurReqEditBean.model.currency}"queryInfo="com.kingdee.eas.basedata.assistant.app.CurrencyQuery"></kd:promptBox>可自行添加javascript腳本實(shí)現(xiàn):Ext.onReady(function(){ F7.on("datachanged",fu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論