【正文】
代碼實(shí)現(xiàn)如下: solutionmon:jsDropListRenderer name=ApplicationCustomerActionForm property=genderCode dropListName=MtGender renderMode=RENDER_CODE_AND_DESC showDefaultItem=true showBlankItem=true/ 這段代碼中用到一些參數(shù),其參數(shù)的名稱及相關(guān)說(shuō)明如表 51 所示。代碼實(shí)現(xiàn)如下: 22 script language=JavaScript src=htmlel:rewritepage=/mon/js// /script 其次在 JSP 頁(yè)面中聲明要使用的 DropList。 在 JSP 頁(yè)面中使用 DropList分三步來(lái)完成。 圖 59 國(guó)際化標(biāo)準(zhǔn) key值查詢 DropList 使用 下拉菜單對(duì)應(yīng)的自定義標(biāo)簽是 DropList,每個(gè) DropList 對(duì)應(yīng)一個(gè) JS 文件,下拉菜單中的維護(hù)參數(shù)從 JS 中取出。 Key 值是可以在庫(kù) 的 ebbase schema 下的 tbl_res_key 表中可以查詢到。便于程序的維護(hù)。在頁(yè)面中引用 JSP 頁(yè)面代碼實(shí)現(xiàn)如下面所示。在 JSP 頁(yè)面中定義一個(gè)標(biāo)簽庫(kù)以及其自定義標(biāo)簽的前綴代碼實(shí)現(xiàn)如圖 58 所示。如下面的代碼所示。下面以/HXBDCMSZH/webapp/dcma/limit_utilization/application/application_add .jsp 頁(yè)面為例來(lái)詳細(xì)說(shuō)明前臺(tái)界面的開(kāi)發(fā)。 如圖 57 XML文件配置 通過(guò) XML 配置文件找到相應(yīng)的 Action,在 Action 中找到相應(yīng)的方法,再通過(guò)對(duì)應(yīng)的方法到 XML文件中找到對(duì)應(yīng)的頁(yè)面 。下面將列出菜單 的 XML 配置文件。如圖 56 所示。 圖 55 添加應(yīng)用程序菜單模板 20 將新增的菜單綁定到角色上 不同的客戶經(jīng)理有不同的權(quán)限,即要控制菜單對(duì)客戶經(jīng)理的可見(jiàn)性。 19 圖 54 查詢應(yīng)用程序 添加新增的菜單到菜單模板 在將菜單添加到指定的應(yīng)用程序之下后,須將新添加的菜單添加到菜單模板,即新添加的菜單是該應(yīng)用程序之下的主菜單還是某個(gè)已存在的主菜單下的子菜單。 圖 53 添加菜單 將新增 的菜單添加到應(yīng)用程序 在上面添加完菜單的基本信息后,須將菜單添加到指定的應(yīng)用程序下,即菜單是添加在那個(gè)子應(yīng)用程序之下的。其中最核心的部分是 HREF(超鏈接),配置完相應(yīng)的 XML 文件后,通過(guò)單擊 HREF 就可進(jìn)入到初始化界面。如圖 52 所示。 查詢菜單 選擇根節(jié)點(diǎn)訪問(wèn)權(quán)設(shè)置,點(diǎn)擊子菜單菜單項(xiàng),進(jìn)入菜單查詢界面。最后每一個(gè)在返回列表里的 VO,SessionBean 將其看作數(shù)據(jù)庫(kù)里返回的一行記錄,最終完成數(shù)據(jù)庫(kù)的訪問(wèn)。執(zhí)行存儲(chǔ)過(guò)程,單條記錄或是多條記錄作為結(jié)果返回給 EAIManager。 EAIManager 根據(jù)存儲(chǔ)過(guò)程別名在別名表( tbl_data_template)中找到真正的 18 存儲(chǔ)過(guò)程名。 j s p頁(yè)面j s p頁(yè)面S t r u t sA c t i o n S e r v l e tC o n f i g . x m lA c t i o n F o r mA c t i o nA c t i o n F o r mE J BB u s i n e s s O b j e c t F a c t o r yH o m e I n t e r f a c eL o c a l H o m e I n t e r F a c eB OR e m o t e I n t e r f a c e L o c a l I n t e r F a c eS e s s i o n B e a nE A I M a n a g e rE A I M a n a g e r 圖 51 系統(tǒng)框架 Struts 與 EJB 的交互 Struts 的 Action 類通過(guò) EJB 的 BO 接口的業(yè)務(wù)對(duì)象工廠( BusinessObjectFactory),調(diào)用 lookups 方法,通過(guò)接口( Home Interface、 Local Home Interface)創(chuàng)建 BO,將頁(yè)面的事物數(shù)據(jù)傳遞給 BO, BO 通過(guò)接口實(shí)現(xiàn)對(duì)象 SessionBean(無(wú)狀態(tài)會(huì)話 Bean)完成剩下的操作(主要是 EAIManager 與數(shù)據(jù)庫(kù)的交互過(guò)程),同時(shí)將返還的數(shù)據(jù)傳給 BO。其數(shù)據(jù)傳輸功能實(shí)現(xiàn)主要是靠 Struts 與 EJB 交互, EJB 與 EAIManager 的交互來(lái)實(shí)現(xiàn)的。如圖 410 所示。該功能模塊主要是通過(guò)工作流引擎來(lái)控制的,通過(guò)流引擎將業(yè)務(wù)提交給比自己職位更高一級(jí)的工作人員,從而來(lái)完成審批流程。編輯業(yè)務(wù)界面如圖 49 所示。 業(yè)務(wù)維護(hù)模塊 信貸管理系統(tǒng)中所有的業(yè)務(wù)都是通過(guò)業(yè)務(wù)維護(hù)模塊配置的。如圖48 所示。 擔(dān)保模塊 ( 1) 擔(dān)保品管理 擔(dān)保品是 銀行用來(lái)覆蓋風(fēng)險(xiǎn)的,每個(gè)擔(dān)保品都要有所有者,一些擔(dān)保品具有唯一性標(biāo)識(shí)。通過(guò)計(jì)算授信已批準(zhǔn)的額度、已發(fā)放的額度、在途的額度,判斷該筆額度使用申請(qǐng)業(yè)務(wù)是否有足額可用額度。 額度使用模塊 該模塊主要是對(duì)已經(jīng)批準(zhǔn)的授信申請(qǐng)中的業(yè)務(wù)審批進(jìn)行放款操作。如圖 47 示。 15 圖 46 創(chuàng)建授信 ( 2) 授信重檢 對(duì)已經(jīng)批準(zhǔn)的授信業(yè)務(wù)進(jìn)行定期的風(fēng)險(xiǎn)檢查,在這個(gè)流程中,系統(tǒng)不會(huì)對(duì)授信的要素進(jìn)行修改,只保留重檢的結(jié)果。 圖 45 集團(tuán)客戶、聯(lián)保體客戶、合作企業(yè) 授信模塊 ( 1) 授信創(chuàng)建 銀行業(yè)務(wù)的重要組成部分,客戶經(jīng)理可以通過(guò)授信申請(qǐng)為客戶辦理授信,授信申請(qǐng)時(shí)需要添加業(yè)務(wù)和業(yè)務(wù)的擔(dān)保連接等操作,之后按流程進(jìn)行授信審批的工作。 圖 44 信貸文件 ( 4) 集團(tuán)客戶、聯(lián)保體客戶、合作企業(yè) 系統(tǒng)對(duì)一些有特定關(guān)聯(lián)關(guān)系的客戶群體進(jìn)行的認(rèn)定,在認(rèn)定后,這個(gè)客戶會(huì)有一定的屬性 信息,在業(yè)務(wù)辦理時(shí)系統(tǒng)會(huì)進(jìn)行特殊的判斷和處理。 14 圖 43 客戶查詢 ( 3) 信貸文件 客戶在銀行的信息的體現(xiàn),通過(guò)信貸文件,客戶經(jīng)理可以查詢到客戶的授信 情況,業(yè)務(wù)信息,擔(dān)保品信息等重要數(shù)據(jù)。 圖 42 我的客戶群 ( 2) 客戶查詢 通過(guò)對(duì)特定種類的客戶進(jìn)行信息查詢,得到客戶信息。 主要功能模塊 客戶管理模塊 ( 1) 我的客戶群 通過(guò)客戶的姓名或者貸 款卡號(hào)查詢客戶經(jīng)理名下的客戶信息,并且能夠?qū)蛻暨M(jìn)行解除管理和加入關(guān)聯(lián)關(guān)系的操作。后端部分為數(shù)據(jù)庫(kù)存儲(chǔ)部分,用來(lái)實(shí)現(xiàn)新數(shù)據(jù)的存儲(chǔ)及老數(shù)據(jù)的刪改查等功能。 j s p頁(yè)面j s p頁(yè)面S t r u t sA c t i o n S e r v l e tC o n f i g . x m lA c t i o n F o r mA c t i o nA c t i o n F o r mE J BB u s i n e s s O b j e c t F a c t o r yH o m e I n t e r f a c eL o c a l H o m e I n t e r F a c eB OR e m o t e I n t e r f a c e L o c a l I n t e r F a c eS e s s i o n B e a nE A I M a n a g e rE A I M a n a g e r 圖 41 銀行信貸管理系統(tǒng)系統(tǒng)架構(gòu)圖 前端部分為用戶交互界面,用來(lái)接收用戶輸入的數(shù)據(jù)以及系統(tǒng)處理后的返回?cái)?shù)據(jù)顯示。因此,對(duì)數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程的開(kāi)發(fā)工具選用 PL/SQL Developer。 PL/SQL Developer 是一個(gè)集成開(kāi)發(fā)環(huán)境,專門面向 Oracle 數(shù)據(jù)庫(kù)存儲(chǔ)程序單元的開(kāi)發(fā)。再加上 Eclipse 是開(kāi)源的、免費(fèi)的,自然成為 JAVA 程序代碼開(kāi)發(fā)的首選工 具 [15]。 Eclipse 是著名的跨平臺(tái)的自由集成開(kāi)發(fā)環(huán)境( IDE)。 程序開(kāi)發(fā)工具 法人按揭項(xiàng)目的開(kāi)發(fā)主要包括 JAVA 程序代碼開(kāi)發(fā)和數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程開(kāi)發(fā)。而 SQL Server 相對(duì)于 Oracle 數(shù)據(jù)庫(kù)而言穩(wěn)定性和安全性相對(duì)較 差。在數(shù)據(jù)庫(kù)管理功能、完整性檢查、安全性、一致性方面都有良好的表現(xiàn)。減少了 Oracle 的資源占用,并增強(qiáng)了 Oracle 的能力,使之在低檔軟硬件平臺(tái)上用較少的資源就可以支持更多的用戶 [13]。 Oracle 數(shù)據(jù)庫(kù) 法人按揭項(xiàng)目的數(shù)據(jù)庫(kù)設(shè)計(jì)為關(guān)系型數(shù)據(jù)庫(kù)。 Struts 與 EJB 據(jù)需要 XML 技術(shù)來(lái)完成其路徑的配置。 XML 的簡(jiǎn)單使其易于在任何程序中讀取數(shù)據(jù),同時(shí) XML 與平臺(tái)無(wú)關(guān)也與技術(shù)提供廠商無(wú)關(guān),它的這種開(kāi)放性更適合數(shù)據(jù)的交換。同時(shí) XML 也可以用來(lái)標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對(duì)自己的標(biāo) 記語(yǔ)言進(jìn)行定義的源語(yǔ)言。通過(guò)調(diào)用 EJB 的 BO 接口的實(shí)現(xiàn)類 SessionBean 不僅能夠處理業(yè)務(wù)邏輯,而且提高了代碼的重用性 [11]。SessionBean 是一個(gè)無(wú)狀態(tài)會(huì)話 Bean,同時(shí)也是 BO 接口的實(shí)現(xiàn)類, SessionBean 可以用于實(shí)現(xiàn)業(yè)務(wù)邏輯。在 J2EE 里, Enterprise JavaBean( EJB)稱為 JAVA 企業(yè) Bean,是 JAVA 的核心代碼,分別是會(huì)話 Bean,實(shí)體 Bean 和消息驅(qū)動(dòng) Bean。 XII EJB 技術(shù) Enterprise JavaBean( EJB)是 sun 的服務(wù)器端組件模型,設(shè)計(jì)目標(biāo)與核心應(yīng)用是部署分布式應(yīng)用程序。從整體上說(shuō),應(yīng)用 Struts 框架來(lái)開(kāi)發(fā)程序,完全能夠提高程序的可維護(hù)性 、 可擴(kuò)展性、可移植性、和組件的可復(fù)用性 [10]。 Apache 開(kāi)源軟件聯(lián)盟開(kāi)發(fā)的開(kāi)源項(xiàng)目 Struts 框架,繼承了 MVC 設(shè)計(jì)模式的特性,遵守了 的 Servlet、 JSP 等技術(shù)規(guī)范,并且根據(jù) J2EE 的特點(diǎn)做了相應(yīng)的變化和擴(kuò)展,是 J2EE體系架構(gòu)的一種輕量級(jí)實(shí)現(xiàn) [9]??刂破鳎?Controller)是連接視圖和模型的橋梁,根據(jù)用戶請(qǐng)求,調(diào)用相應(yīng)的模型組件處理請(qǐng)求,然后調(diào)用相應(yīng)的視圖顯示模型返回的數(shù)據(jù)。 Struts 技術(shù) 考慮到法人按揭項(xiàng)目使用 MVC 開(kāi)發(fā)模式,強(qiáng)制的把程序的輸入、處理、輸出分開(kāi),通過(guò)模型( Model),也即應(yīng)用程序的主體部分來(lái)處理業(yè)務(wù)和業(yè)務(wù)邏輯 [7]。 B/S 結(jié)構(gòu)模式的用戶工作界面是通過(guò)瀏覽器來(lái)實(shí)現(xiàn)的,極少部分事物邏輯是在前端( Browser)實(shí)現(xiàn),主要事物邏輯在服務(wù)器端( Server)實(shí)現(xiàn),形成所謂的三層結(jié)構(gòu) [6]。法人按揭項(xiàng)目選取 JAVA 作為開(kāi)發(fā)語(yǔ)言,選取 MVC的開(kāi)發(fā)模式,選 取相對(duì)成熟穩(wěn)定的 Struts、 EJB 作為開(kāi)發(fā)框架,對(duì)數(shù)據(jù)層的處理采用EAIManager。 技術(shù)背景 法人按揭項(xiàng)目的開(kāi)發(fā)采用目前比較主流的 B/S 結(jié)構(gòu)模式而非傳統(tǒng)的 C/S 結(jié)構(gòu)模式??蛻艚?jīng)理可以方便的管理其所轄客戶的相關(guān)信息,以及實(shí)時(shí)查詢業(yè)務(wù)辦理進(jìn)度,并可以通過(guò)系統(tǒng)提供的功能對(duì)客戶數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析。 XI 3 法人按揭項(xiàng)目方案和技術(shù)背景 方案 本系統(tǒng)為銀行信息技術(shù)部門人員設(shè)計(jì),用于實(shí)現(xiàn)法人按揭業(yè)務(wù)的辦公自動(dòng)化,從符合操作簡(jiǎn)便、界面友好、安全性高、靈活、實(shí)用、人性化的要求出發(fā),完成客戶經(jīng)理對(duì)辦理法人按揭業(yè)務(wù)的客戶信息的存儲(chǔ)和分析。 后面將詳細(xì)介紹法人按揭貸款業(yè)務(wù)與普通貸款業(yè)務(wù)之間的差異,方便我們更好的理解法人按揭貸款業(yè)務(wù)。 授信階段主要包括創(chuàng)建授信申請(qǐng)、新建客戶、新建業(yè)務(wù)、新建擔(dān)保品、業(yè)務(wù)連接擔(dān)保品等,但是業(yè)務(wù)流程細(xì)節(jié)上有所不同??偟膩?lái)說(shuō),法人按揭在業(yè)務(wù)流程上基本上同信貸流程一樣??梢酝ㄟ^(guò)創(chuàng)建合作企業(yè)來(lái)控制貸給某個(gè)地產(chǎn)商或機(jī)械制造商所有客戶的最大額度。只是創(chuàng)建業(yè)務(wù)時(shí)選擇業(yè)務(wù)類型為合作企業(yè)額度。 在創(chuàng)建法人按揭貸款業(yè)務(wù)時(shí),可以創(chuàng)建合作企業(yè),也可以不創(chuàng)建合作企業(yè)。這里生產(chǎn)經(jīng)營(yíng)所需是指,貸款購(gòu)置的房產(chǎn)被直接或間接用于借款人正常范圍的生產(chǎn)經(jīng)營(yíng)活動(dòng)。法人按揭業(yè)務(wù)主要包括法人房產(chǎn)按揭和法人汽車及機(jī)械設(shè)備按揭,法人按揭業(yè)務(wù)的主要客戶是法人。額 度 使 用 申 請(qǐng) 擔(dān) 保賬 戶 連 接查 詢 企 貸 授 信 擔(dān) 保 連 接表 , 插 入 額 度 使 用 申 請(qǐng)擔(dān) 保 賬 戶 連 接 表 。 將業(yè)務(wù)信息添加到 申請(qǐng)業(yè)務(wù)信息表業(yè)務(wù)與擔(dān)保品信息相關(guān)聯(lián)查詢申請(qǐng)擔(dān)保品信息表和申請(qǐng)擔(dān)保品業(yè)務(wù)表 , 在授信擔(dān)保連接表中添加相關(guān)信息授信申請(qǐng)?jiān)谑谛排鷾?zhǔn)后將申請(qǐng)業(yè)務(wù)信息保存到主業(yè)務(wù)信息表中準(zhǔn)批已信授否是是否新建授信申請(qǐng)額 度 使 用創(chuàng) 建 額 度 使 用申 請(qǐng)創(chuàng) 建 額 度 使 用業(yè) 務(wù)額 度 使 用 擔(dān) 保品當(dāng) 創(chuàng) 建 一 筆 額 度 使 用 申 請(qǐng) 業(yè)務(wù)