-validation.xml就是要驗(yàn)證的Action類的名字。要將此文件放于Class文件相同的目錄。如果在Action類在struts配置中有多個(gè)action實(shí)例(actionname),那么對(duì)應(yīng)某個(gè)action的驗(yàn)證文件名規(guī)則如下:文件名:

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Struts2驗(yàn)證框架的配置及validation.xml常用的

系統(tǒng) 2338 0
Struts2驗(yàn)證框架的配置及validation.xml常用的驗(yàn)證規(guī)則
validation.xml 的命名規(guī)則和放置路徑:
文件名:<ActionClassName>-validation.xml
< ActionClassName>就是要驗(yàn)證的Action類的名字。要將此文件放于Class文件相同的目錄。

如果在Action類在struts配置中有多個(gè)action實(shí)例(action name),那么對(duì)應(yīng)某個(gè)action的驗(yàn)證文件名規(guī)則如下:

文件名:<ActionClassName>-<aliasName>-validation.xml

例如:UserAction-login-validation.xml

(注意:上面的<aliasName>并不是method name,而是struts.xml中配置的action的name)


validation.xml 的內(nèi)容示例:
其實(shí)message的信息還有可以配置國(guó)際化:配置方法也極其簡(jiǎn)單就是<message key="userpass.required"></message>,key對(duì)應(yīng)的是國(guó)際化配置文件中的國(guó)際化信息。

Struts2 的驗(yàn)證規(guī)則大概有以下數(shù)種:
required:必填校驗(yàn)器
requiredstring:必填字符串校驗(yàn)器
int:整數(shù)校驗(yàn)器
double:雙精度浮點(diǎn)數(shù)校驗(yàn)器
date:日期校驗(yàn)器
expression:表達(dá)式校驗(yàn)器
fieldexpression:字段表達(dá)式校驗(yàn)器
email:電子郵件校驗(yàn)器
url:網(wǎng)址校驗(yàn)器
visitor:Visitor校驗(yàn)器
conversion:轉(zhuǎn)換校驗(yàn)器
stringlength:字符串長(zhǎng)度校驗(yàn)器
regex:正則表達(dá)式校驗(yàn)器

常用的驗(yàn)證規(guī)則:

1。必填檢驗(yàn)
<validators>
<field name="username">
<field-validator type="required">
< message>指定檢驗(yàn)失敗的提示信息</message>
</field-validator>
< /field>
< /validators>


2。必填字符串檢驗(yàn)
<validators>
< field name="username">
<field-validator type="requiredstring">
< param name="trim">true</param>
< message>指定檢驗(yàn)失敗的提示信息</message>
</field-validator>
< /field>
< /validators>


3。整數(shù)檢驗(yàn)器/浮點(diǎn)檢驗(yàn)
<validators>
< field name="age">
<field-validator type="int">
< param name="min">1</param>
< param name="max">150</param>
< message>年紀(jì)必須在1到150之間</message>
</field-validator>
< /field>
< /validators>


4。日期檢驗(yàn)
<validators>
< field name="birth">
<field-validator type="date">
< param name="min">1900-01-01</param>
< param name="max">2050-02-21</param>
< message key="birth.range"/>
</field-validator>
< /field>
< /validators>


5.字段表達(dá)式檢驗(yàn)器(要求指定字段滿足一個(gè)邏輯表達(dá)式)
<validators>
<field name="re_pass">
<field-validator type="fieldexpression">
<!--指定邏輯表達(dá)式 -->
<param name="expression"> (pass eq re_pass)</param>
< message>密碼必須和確認(rèn)密碼相等</message>
< /field-validator>
</field>
< /validators>


6.郵件地址校驗(yàn)
<validators>
<field name="email">
< field-validator type="email">
< message>你的電子郵件地址必須是一個(gè)有效的電郵地址</message>
< /field-validator>
</field>
< /validators>


7。網(wǎng)址 檢驗(yàn)
<validators>
<field name="url">
< field-validator type="url">
< message>你的主頁(yè)地址必須是一個(gè)有效的網(wǎng)址</message>
< /field-validator>
</field>
< /validators>


8.字符串長(zhǎng)度檢驗(yàn)
<validators>
< field name="user">
<field-validator type="stringlength">
< param name="minlength">4</param>
< param name="maxlength">20</param>
< message>你的用戶名長(zhǎng)度必須在4到20之間</message>
</field-validator>
< /field>
< /validators>


9.正則表達(dá)式檢驗(yàn)
<validators>
< field name="user">
<field-validator type="regex">
< param name="expression_r"><![CDATA[(\w{4,25})]]></param>
< message>您輸入的用戶名只能是字母和數(shù)組,且長(zhǎng)度必須在4到25之間</message>
</field-validator>
< /field>
</validators>

接下來我舉一個(gè)簡(jiǎn)單的登錄驗(yàn)證的例子:
login.jsp
這里有個(gè)地方需要注意:form中要加入validate=“true”這個(gè)屬性。

***Action-validation.xml
這種方式就使用了國(guó)際化的信息。

***Action.action這個(gè)挺簡(jiǎn)單的就是常規(guī)的action寫法,在execute中驗(yàn)證表單,或自己封裝方法驗(yàn)證表單,但是不能繼承validate()方法,因?yàn)閍ction執(zhí)行的時(shí)候?qū)崿F(xiàn)檢察validate方法的,如果這樣的話就配置重復(fù)了,不過有什么結(jié)果我沒有測(cè)試(沒啥意義)。

struts.xml配置
有一點(diǎn)有必要提一下,action中必須配置input這個(gè)result,因?yàn)槿绻?yàn)證失敗后struts2會(huì)自動(dòng)轉(zhuǎn)向到input的result,不管你的action中配置的驗(yàn)證失敗的result是什么。所以這個(gè)input屬性的result不能落下。
效果
火狐下面的中文語言:
Struts2驗(yàn)證框架的配置及validation.xml常用的驗(yàn)證規(guī)則
ie下的英文語言:
Struts2驗(yàn)證框架的配置及validation.xml常用的驗(yàn)證規(guī)則

分類: struts2

Struts2驗(yàn)證框架的配置及validation.xml常用的驗(yàn)證規(guī)則


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 叶城县| 都昌县| 天镇县| 新疆| 门头沟区| 巴青县| 临颍县| 库车县| 阿图什市| 武冈市| 秦安县| 涟源市| 固镇县| 同江市| 将乐县| 民勤县| 古交市| 英山县| 南皮县| 孝感市| 色达县| 金湖县| 阿拉善右旗| 卓尼县| 若尔盖县| 宣恩县| 房山区| 扎鲁特旗| 分宜县| 乐安县| 五指山市| 库车县| 大新县| 嘉鱼县| 桃园市| 沙田区| 子洲县| 山丹县| 安多县| 石渠县| 鄄城县|