一種智能參數(shù)校驗(yàn)裝置制造方法
【專利摘要】本發(fā)明提供一種智能參數(shù)校驗(yàn)裝置,包括頁面端處理單元和、或服務(wù)端處理單元;所述頁面端處理單元包括規(guī)則讀取模塊、參數(shù)獲取模塊、校驗(yàn)器擴(kuò)展模塊、參數(shù)校驗(yàn)?zāi)K以及異常處理模塊;所述服務(wù)端處理單元包括所述規(guī)則讀取模塊、所述參數(shù)獲取模塊、所述校驗(yàn)器擴(kuò)展模塊、所述參數(shù)校驗(yàn)?zāi)K、所述異常處理模塊以及一規(guī)則轉(zhuǎn)換模塊。本發(fā)明具有如下優(yōu)點(diǎn):1、代碼復(fù)用高;2、適用范圍廣;3、校驗(yàn)規(guī)則表示形式靈活;4、易于使用和擴(kuò)展;5、提高了用戶體驗(yàn)和感知;6、提高開發(fā)效率;7、降低維護(hù)成本。
【專利說明】一種智能參數(shù)校驗(yàn)裝置 【【技術(shù)領(lǐng)域】】
[0001] 本發(fā)明涉及一種智能參數(shù)校驗(yàn)裝置。 【【背景技術(shù)】】
[0002] 在項(xiàng)目開發(fā)過程中數(shù)據(jù)有效性驗(yàn)證對于軟件產(chǎn)品研發(fā)人員來說是件很頭痛的事 兒但肯定又是必須的。
[0003] 針對Web項(xiàng)目而言,客戶端驗(yàn)證+服務(wù)端的驗(yàn)證缺一不可,客戶端的腳本驗(yàn)證用于 提高用戶體驗(yàn)和感知,服務(wù)端的驗(yàn)證主要是為了數(shù)據(jù)的安全性、合法性的驗(yàn)證。但是,硬編 碼時(shí)代,所有代碼都寫在程序中,在實(shí)施這兩種驗(yàn)證的時(shí)候會發(fā)現(xiàn)有以下幾個(gè)問題:
[0004] 1、客戶端校驗(yàn)代碼寫起來相對比較煩瑣,而且容易出錯,主要是拼寫錯誤;
[0005] 2、當(dāng)業(yè)務(wù)調(diào)整或校驗(yàn)方式不滿足要求時(shí),需要開發(fā)人員去重新閱讀代碼才能修 改;
[0006] 3、服務(wù)端的驗(yàn)證和客戶端驗(yàn)證要保持一致性一樣很煩瑣(客戶端驗(yàn)證輸入不能 超過10個(gè)字符,那服務(wù)器端也要相應(yīng)的控制在10個(gè)字符,而且修改時(shí),需要將客戶端和服 務(wù)端同步修改,提示信息前后端都要再輸入一次,比較繁瑣),耗費(fèi)研發(fā)時(shí)間。
[0007] 4、每次實(shí)現(xiàn)表單校驗(yàn)都重新寫或者復(fù)制過來一堆代碼,代碼顯得不夠簡潔;針對 接口開發(fā)而言,同樣存在參數(shù)校驗(yàn)方法重新寫或者復(fù)制過來一堆代碼的窘境;
[0008] 另外,現(xiàn)有的參數(shù)校驗(yàn)裝置普遍存在通用性差(前后臺校驗(yàn)代碼難以復(fù)用且與框 架耦合)、擴(kuò)展性差;不好用(配置和實(shí)現(xiàn)起來繁瑣)等缺點(diǎn)。 【
【發(fā)明內(nèi)容】
】
[0009] 本發(fā)明要解決的技術(shù)問題,在于提供一種智能參數(shù)校驗(yàn)裝置,其解決了軟件研發(fā) 人員重復(fù)勞動的痛點(diǎn),大大降低軟件校驗(yàn)耗費(fèi)的時(shí)間和精力。
[0010] 一種智能參數(shù)校驗(yàn)裝置,包括頁面端處理單元和、或服務(wù)端處理單元;
[0011] 所述頁面端處理單元包括規(guī)則讀取模塊、參數(shù)獲取模塊、校驗(yàn)器擴(kuò)展模塊、參數(shù)校 驗(yàn)?zāi)K以及異常處理模塊;所述規(guī)則讀取模塊負(fù)責(zé)讀取業(yè)務(wù)校驗(yàn)規(guī)則,所述參數(shù)獲取模塊 負(fù)責(zé)獲得表單的輸入值,所述參數(shù)校驗(yàn)?zāi)K內(nèi)設(shè)有內(nèi)置校驗(yàn)器,通過內(nèi)置校驗(yàn)器對所述表 單的輸入值依據(jù)所述業(yè)務(wù)校驗(yàn)規(guī)則進(jìn)行校驗(yàn),當(dāng)校驗(yàn)不通過時(shí)轉(zhuǎn)到異常處理模塊;所述異 常處理模塊負(fù)責(zé)當(dāng)校驗(yàn)失敗時(shí),將異常提示信息推送給使用者并給出提示,所述校驗(yàn)器擴(kuò) 展模塊負(fù)責(zé)當(dāng)內(nèi)置校驗(yàn)器無法滿足需求時(shí),使用者通過該校驗(yàn)擴(kuò)展模塊制定所需的校驗(yàn) 器;
[0012] 所述服務(wù)端處理單元包括所述規(guī)則讀取模塊、所述參數(shù)獲取模塊、所述校驗(yàn)器擴(kuò) 展模塊、所述參數(shù)校驗(yàn)?zāi)K、所述異常處理模塊以及一規(guī)則轉(zhuǎn)換模塊,所述規(guī)則轉(zhuǎn)換模塊負(fù) 責(zé)將讀取到的業(yè)務(wù)校驗(yàn)規(guī)則轉(zhuǎn)換成所述參數(shù)校驗(yàn)?zāi)K能識別的字符串。
[0013] 進(jìn)一步地,所述業(yè)務(wù)校驗(yàn)規(guī)則包括json格式的字符串、xml格式的字符串、json格 式的文件或xml格式的文件。
[0014] 進(jìn)一步地,所述規(guī)則轉(zhuǎn)換模塊負(fù)責(zé)將json格式或xml格式的業(yè)務(wù)校驗(yàn)規(guī)則轉(zhuǎn)換成 java或javascript能識別的字符串。
[0015] 本發(fā)明具有如下優(yōu)點(diǎn):
[0016] 1、代碼復(fù)用高,軟件研發(fā)人員沒有必要每次前后臺編寫校驗(yàn)規(guī)則;
[0017] 2、適用范圍廣,在web、wap、移動應(yīng)用項(xiàng)目、接口都可以用;
[0018] 3、校驗(yàn)規(guī)則表示形式靈活:支持json格式、xml格式,可以是字符串也可以自動搜 索文件讀取;
[0019] 4、易于使用和擴(kuò)展:當(dāng)內(nèi)置校驗(yàn)器無法滿足實(shí)際需要,可自定義實(shí)現(xiàn);
[0020] 5、提高了用戶體驗(yàn)和感知:統(tǒng)一出錯提示或者當(dāng)傳遞的參數(shù)不滿足要求時(shí)給予提 不,提商了用戶體驗(yàn)和感知;
[0021] 6、提高開發(fā)效率:在Webservic接口開發(fā)過程中,當(dāng)傳遞的參數(shù)不合法及時(shí)的提 醒接口調(diào)用方,可有效的提高開發(fā)效率;
[0022] 7、降低維護(hù)成本:當(dāng)業(yè)務(wù)調(diào)整或校驗(yàn)方式不滿足要求時(shí),通常是業(yè)務(wù)變動不是太 大的情況下,開發(fā)人員只需修改業(yè)務(wù)規(guī)則文件即可滿足業(yè)務(wù)需要,有些僅運(yùn)維人員即可完 成修改。 【【專利附圖】
【附圖說明】】
[0023] 下面參照附圖結(jié)合實(shí)施例對本發(fā)明作進(jìn)一步的說明。
[0024] 圖1為本發(fā)明一種智能參數(shù)校驗(yàn)裝置的結(jié)構(gòu)示意圖。
[0025] 圖2為本發(fā)明一種智能參數(shù)校驗(yàn)裝置在接口開發(fā)下的流程圖。
[0026] 圖3為本發(fā)明一種智能參數(shù)校驗(yàn)裝置在Web開發(fā)下的使用流程。 【【具體實(shí)施方式】】
[0027] 請參閱圖1,一種智能參數(shù)校驗(yàn)裝置,包括頁面端處理單元和、或服務(wù)端處理單元; 即所述智能參數(shù)校驗(yàn)裝置可以根據(jù)實(shí)際應(yīng)用場景需要選擇只包含頁面端處理單元或只包 含服務(wù)端處理單元或同時(shí)包含頁面端處理單元和服務(wù)端處理單元;
[0028] 所述頁面端處理單元包括規(guī)則讀取模塊、參數(shù)獲取模塊、校驗(yàn)器擴(kuò)展模塊、參數(shù) 校驗(yàn)?zāi)K以及異常處理模塊;所述規(guī)則讀取模塊負(fù)責(zé)讀取業(yè)務(wù)校驗(yàn)規(guī)則,所述參數(shù)獲取模 塊負(fù)責(zé)獲得表單的輸入值,所述參數(shù)校驗(yàn)?zāi)K內(nèi)設(shè)有內(nèi)置校驗(yàn)器,通過內(nèi)置校驗(yàn)器對所述 表單的輸入值依據(jù)所述業(yè)務(wù)校驗(yàn)規(guī)則進(jìn)行校驗(yàn),當(dāng)校驗(yàn)不通過時(shí)轉(zhuǎn)到異常處理模塊;所 述異常處理模塊負(fù)責(zé)當(dāng)校驗(yàn)失敗時(shí),將異常提示信息推送給使用者并給出提示,所述校驗(yàn) 器擴(kuò)展模塊負(fù)責(zé)當(dāng)內(nèi)置校驗(yàn)器無法滿足需求時(shí),使用者通過該校驗(yàn)擴(kuò)展模塊制定所需的 校驗(yàn)器;所述規(guī)則轉(zhuǎn)換模塊負(fù)責(zé)將json格式或xml格式的業(yè)務(wù)校驗(yàn)規(guī)則轉(zhuǎn)換成java或 javascript能識別的字符串;
[0029] 所述業(yè)務(wù)校驗(yàn)規(guī)則包括json格式的字符串、xml格式的字符串、json格式的文 件或xml格式的文件,當(dāng)業(yè)務(wù)校驗(yàn)規(guī)則以文件形式存放時(shí),所述規(guī)則讀取模塊根據(jù)業(yè)務(wù)校 驗(yàn)規(guī)則存放的路徑進(jìn)行讀取。當(dāng)參數(shù)校驗(yàn)?zāi)K要對某參數(shù)進(jìn)行校驗(yàn)時(shí),需要先行指定校驗(yàn) 器對應(yīng)的名稱(即通過名稱從內(nèi)置校驗(yàn)器查找所需的校驗(yàn)器);所述內(nèi)置校驗(yàn)器內(nèi)封裝了 復(fù)數(shù)個(gè)常用的校驗(yàn)器,例如網(wǎng)址校驗(yàn)器(url)、手機(jī)號校驗(yàn)器(mobile)、身份證號校驗(yàn)器 (idCard)、數(shù)字校驗(yàn)器(number)、郵政編碼校驗(yàn)器(zip)等。
[0030] 所述服務(wù)端處理單元包括所述規(guī)則讀取模塊、所述參數(shù)獲取模塊、所述校驗(yàn)器擴(kuò) 展模塊、所述參數(shù)校驗(yàn)?zāi)K、所述異常處理模塊以及一規(guī)則轉(zhuǎn)換模塊,所述規(guī)則轉(zhuǎn)換模塊負(fù) 責(zé)將讀取到的業(yè)務(wù)校驗(yàn)規(guī)則轉(zhuǎn)換成所述參數(shù)校驗(yàn)?zāi)K能識別的字符串。
[0031] 需要說明的是:本裝置尤其適用于表單和接口參數(shù)校驗(yàn),硬編碼時(shí)代,所有代碼都 寫在程序中,當(dāng)業(yè)務(wù)調(diào)整或校驗(yàn)方式不滿足要求時(shí),需要開發(fā)人員去閱讀代碼修改,使用了 該裝置后,業(yè)務(wù)和代碼分離且業(yè)務(wù)規(guī)則存放于文件中,后續(xù)運(yùn)維,都可以通過修改業(yè)務(wù)規(guī)則 文件就可以完成,而此項(xiàng)工作完全可以不是開發(fā)來執(zhí)行,運(yùn)維也可以做(通常是業(yè)務(wù)變動 不是太大的情況下,如果業(yè)務(wù)調(diào)整范圍廣,造成原先指定的校驗(yàn)器無法通過修改業(yè)務(wù)規(guī)則 就可以完成業(yè)務(wù)目標(biāo),就需要開發(fā)人員介入修改)。
[0032] 請參閱圖2,圖2為接口開發(fā)下的使用流程。接口調(diào)用方向接口服務(wù)提供方請求服 務(wù),在接口服務(wù)提供方加載服務(wù)端處理的單元和業(yè)務(wù)校驗(yàn)規(guī)則文件或字符串,所述規(guī)則讀 取模塊讀取業(yè)務(wù)校驗(yàn)規(guī)則,若所述校驗(yàn)規(guī)則非java或javascript能識別的字符串,則通過 所述規(guī)則轉(zhuǎn)換模塊進(jìn)行轉(zhuǎn)換;所述參數(shù)獲取模塊獲取需要校驗(yàn)的參數(shù),所述參數(shù)校驗(yàn)?zāi)K 依據(jù)業(yè)務(wù)校驗(yàn)規(guī)則進(jìn)行參數(shù)校驗(yàn),當(dāng)校驗(yàn)成功時(shí),返回結(jié)果信息給接口調(diào)用方,當(dāng)校驗(yàn)失敗 時(shí),所述異常處理模塊將異常信息傳遞給接口調(diào)用方,提高了用戶體驗(yàn)和感知且有效提高 開發(fā)效率。
[0033] 請參閱圖3,圖3為Web開發(fā)下的使用流程。首先頁面端處理單元和業(yè)務(wù)校驗(yàn)規(guī)則 加載表單頁面,然后提交表單,頁面端處理單元的規(guī)則讀取模塊讀取業(yè)務(wù)校驗(yàn)規(guī)則,所述參 數(shù)獲取模塊獲取需要校驗(yàn)的參數(shù),所述參數(shù)校驗(yàn)?zāi)K依據(jù)業(yè)務(wù)校驗(yàn)規(guī)則進(jìn)行參數(shù)校驗(yàn),當(dāng) 校驗(yàn)成功時(shí),通知服務(wù)器,當(dāng)校驗(yàn)失敗時(shí),所述異常處理模塊將異常信息傳遞給表單頁面。 所述服務(wù)器加載所述服務(wù)端處理單元及所述業(yè)務(wù)校驗(yàn)規(guī)則,服務(wù)器接收瀏覽器提交的表單 請求,所述服務(wù)端處理單元的規(guī)則讀取模塊讀取業(yè)務(wù)校驗(yàn)規(guī)則,若所述校驗(yàn)規(guī)則非java或 javascript能識別的字符串,則通過所述規(guī)則轉(zhuǎn)換模塊進(jìn)行轉(zhuǎn)換;所述參數(shù)獲取模塊獲取 需要校驗(yàn)的參數(shù),所述參數(shù)校驗(yàn)?zāi)K依據(jù)業(yè)務(wù)校驗(yàn)規(guī)則進(jìn)行參數(shù)校驗(yàn),當(dāng)校驗(yàn)成功時(shí),通過 展示結(jié)果,當(dāng)校驗(yàn)失敗時(shí),所述異常處理模塊將異常信息傳遞給表單頁面。
[0034] Web開發(fā)下的使用流程中,頁面端處理單元和服務(wù)端處理單元共用相同的業(yè)務(wù)校 驗(yàn)規(guī)則,軟件人員不需要編寫兩次業(yè)務(wù)校驗(yàn)規(guī)則,大大減輕軟件人員編寫業(yè)務(wù)規(guī)則的工作 量。
[0035] 下面舉例說明【具體實(shí)施方式】:
[0036] 1、在需要使用智能參數(shù)校驗(yàn)裝置的頁面引入日期控件,日期控件My97DatePicker http://www. my97. net/
[0037] 具體地:〈script type = ^text/javascript^src = //< % = basePath % >/js/ validator/validator. js〃X/script>
[0038] 2、加載智能參數(shù)校驗(yàn)裝置依賴的jar包(所述依賴的jar包由第三方組織(例 如APACHE基金會)免費(fèi)提供給技術(shù)人員使用,利用其提供的基礎(chǔ)功能,節(jié)省開發(fā)人員開發(fā) 裝置的時(shí)間,例如,直接利用其解析XML字符串的jar包,就可以省去研發(fā)人員親自寫代碼 實(shí)現(xiàn)XML字符串解析的時(shí)間),依賴的核心包有:dom4j-l. 6. I. jar、json-lib-2. 4. jar、 log4j_L 2· 14. jar、commons-logging-L L L jar
[0039] 以下是maven工程的pom. xml中的配置
【權(quán)利要求】
1. 一種智能參數(shù)校驗(yàn)裝置,其特征在于:包括頁面端處理單元和、或服務(wù)端處理單元; 所述頁面端處理單元包括規(guī)則讀取模塊、參數(shù)獲取模塊、校驗(yàn)器擴(kuò)展模塊、參數(shù)校驗(yàn)?zāi)? 塊以及異常處理模塊;所述規(guī)則讀取模塊負(fù)責(zé)讀取業(yè)務(wù)校驗(yàn)規(guī)則,所述參數(shù)獲取模塊負(fù)責(zé) 獲得表單的輸入值,所述參數(shù)校驗(yàn)?zāi)K內(nèi)設(shè)有內(nèi)置校驗(yàn)器,通過內(nèi)置校驗(yàn)器對所述表單的 輸入值依據(jù)所述業(yè)務(wù)校驗(yàn)規(guī)則進(jìn)行校驗(yàn),當(dāng)校驗(yàn)不通過時(shí)轉(zhuǎn)到異常處理模塊;所述異常處 理模塊負(fù)責(zé)當(dāng)校驗(yàn)失敗時(shí),將異常提示信息推送給使用者并給出提示,所述校驗(yàn)器擴(kuò)展模 塊負(fù)責(zé)當(dāng)內(nèi)置校驗(yàn)器無法滿足需求時(shí),使用者通過該校驗(yàn)擴(kuò)展模塊制定所需的校驗(yàn)器; 所述服務(wù)端處理單元包括所述規(guī)則讀取模塊、所述參數(shù)獲取模塊、所述校驗(yàn)器擴(kuò)展模 塊、所述參數(shù)校驗(yàn)?zāi)K、所述異常處理模塊以及一規(guī)則轉(zhuǎn)換模塊,所述規(guī)則轉(zhuǎn)換模塊負(fù)責(zé)將 讀取到的業(yè)務(wù)校驗(yàn)規(guī)則轉(zhuǎn)換成所述參數(shù)校驗(yàn)?zāi)K能識別的字符串。
2. 根據(jù)權(quán)利要求1所述的一種智能參數(shù)校驗(yàn)裝置,其特征在于:所述業(yè)務(wù)校驗(yàn)規(guī)則包 括json格式的字符串、xml格式的字符串、json格式的文件或xml格式的文件。
3. 根據(jù)權(quán)利要求1所述的一種智能參數(shù)校驗(yàn)裝置,其特征在于:所述規(guī)則轉(zhuǎn)換模塊負(fù) 責(zé)將json格式或xml格式的業(yè)務(wù)校驗(yàn)規(guī)則轉(zhuǎn)換成java或javascript能識別的字符串。
【文檔編號】G06F11/36GK104360937SQ201410563040
【公開日】2015年2月18日 申請日期:2014年10月21日 優(yōu)先權(quán)日:2014年10月21日
【發(fā)明者】吳劍飛, 裴旭東, 張存國, 張峰 申請人:福建富士通信息軟件有限公司