溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

WebWork驗(yàn)證機(jī)制原理

發(fā)布時(shí)間:2021-08-18 11:19:24 來(lái)源:億速云 閱讀:147 作者:chen 欄目:編程語(yǔ)言

本篇內(nèi)容介紹了“WebWork驗(yàn)證機(jī)制原理”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

自Webwork2.2發(fā)布以后,Webwork驗(yàn)證機(jī)制就全部改由Ajax驗(yàn)證。驗(yàn)證的原理是一個(gè)需要驗(yàn)證的表單域在onblur時(shí)發(fā)送一次請(qǐng)求到服務(wù)器端進(jìn)行驗(yàn)證,然后實(shí)時(shí)提醒。

我只好手寫Javascript了。

到了Webwork2.2.2這個(gè)版本,有個(gè)好消息來(lái)了。WebWork驗(yàn)證重新支持客戶端驗(yàn)證。

客戶端驗(yàn)證的例子可見WebWork自還的例子“showcase”。使用客戶端驗(yàn)證大體上跟以前的服務(wù)器端驗(yàn)證相似,只是多了一些步驟。

完整的有以下幾個(gè)步驟:

一、編寫XXXAction-alias-validation.xml--驗(yàn)證配置文件。

文件放在需要驗(yàn)證的Action類同一目錄下,alias是可選項(xiàng),如果有幾個(gè)Action使用了同一個(gè)Action類。而你想對(duì)其中一個(gè)Action進(jìn)行驗(yàn)證,那么alias就是那個(gè)Action的名字。

如:PersonAction.java,被editPerson,savePerson,deletePerson等Action使用到,而僅需要對(duì)savePerson這個(gè)動(dòng)作來(lái)驗(yàn)證時(shí),配置文件名字就是:PersonAction-savePerson-validation.xml。

Webwork支持的客戶端驗(yàn)證類型有:

◆required validator

◆requiredstring validator

◆stringlength validator

◆regex validator

◆email validator

◆url validator

◆int validator

◆double validator

二、配置Xwork.xml,保證攔截器棧里有Validation的攔截器

三、編寫Jsp(VM或FTL)。這里有幾個(gè)需要注意的地方。

1.在Jsp加上一個(gè)Head標(biāo)簽,的結(jié)果是生成兩個(gè)Css樣式的鏈接:

主要是獲取顯示錯(cuò)誤是的樣式。

2、使用,很遺憾我們只能夠用Webwork的UI標(biāo)簽,這樣才能使用到她的客戶端WebWork驗(yàn)證機(jī)制。的標(biāo)簽是挺方便,但是在特定的場(chǎng)合,我們必須使用自已的樣式和風(fēng)格的布局。而Webwork默認(rèn)的XHTML主題的標(biāo)簽會(huì)把布局搞亂。當(dāng)然,我可以使用Simple主題的。但是在需要客戶端驗(yàn)證的時(shí)候,Simple主題是行不通的。也就是說(shuō)要求主題必須是XHTML以上。或者自定義的主題(自已提供錯(cuò)誤信息報(bào)告功能)。呵。沒辦法,先將就著用XHTML吧。

的標(biāo)簽里使用namespace 及Action屬性。如果你的Action是/foo/bar/new.action那么,你必須這樣寫:

〈ww:form namespace="/foo/bar"     action="new"  validate="true"/〉
validate="true"一句將會(huì)在客戶端生成一句:  〈script src="/bean/webwork/xhtml/validation.js"〉    〈/script〉

如果你這樣寫:

〈ww:form action="/foo/bar/new.action"     validate="true"/〉

你將得不到客戶端驗(yàn)證。要注意,這個(gè)細(xì)節(jié)不容忽視。后來(lái)查文檔的時(shí)候才知道Webwork已經(jīng)提醒我們要像上一種寫法那樣寫。因?yàn)樗滥膫€(gè)名字空間下的哪個(gè)Action需要被驗(yàn)證!看吧。這是心急的錯(cuò)。不看文檔后果就自負(fù)。

以上兩種寫法,在頁(yè)面上生成Js的結(jié)果是不一樣的。

***種寫法會(huì)在頁(yè)面上生成相應(yīng)的WebWork驗(yàn)證機(jī)制規(guī)則。

第二種寫法生成的Js,只是簡(jiǎn)單清楚報(bào)錯(cuò)信息然后提交請(qǐng)求到服務(wù)器,由服務(wù)器來(lái)驗(yàn)證。

只需要這三步,Webwork2.2.2的客戶端驗(yàn)證功能就算是使用了。

現(xiàn)在編輯是使用FCKEditor,另外可以看Webwork的Showcase。這東西太出彩了。

“WebWork驗(yàn)證機(jī)制原理”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI