日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

转载 - Struts2基于XML配置方式实现对action的所有方法进行输入校验

發(fā)布時(shí)間:2025/4/9 asp.net 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转载 - Struts2基于XML配置方式实现对action的所有方法进行输入校验 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

出處:http://www.cnblogs.com/Laupaul/archive/2012/03/15/2398360.html

   http://www.blogjava.net/focusJ/archive/2010/11/15/367272.html

使用基于XML配置方式實(shí)現(xiàn)輸入校驗(yàn)時(shí),Action也需要繼承ActionSupport,并且提供校驗(yàn)文件,校驗(yàn)文件和action類放在同一個(gè)包下,文件的取名格式為:ActionClassName-validation.xml。ActionClassName為action的簡單類名,-validation為固定寫法。如果Action類為cn.validate.action.UserAction,那么該文件的取名為:UserAction-validation.xml。

下面是xml配置信息

1 <!DOCTYPE validators PUBLIC 2 "-//Apache Struts//XWork Validator 1.0.2//EN" 3 "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd"> 4 5 <validators> 6 <field name="username"> 7 <field-validator type="requiredstring"><!-- 必填字符串校驗(yàn)器 --> 8 <param name="doTrim">true</param><!-- 去掉兩邊空格 --> 9 <message>用戶名不能為空</message> 10 </field-validator> 11 </field> 12 <field name="mobile"> 13 <field-validator type="requiredstring"><!-- 必填字符串校驗(yàn)器 --> 14 <param name="doTrim">true</param><!-- 去掉兩邊空格 --> 15 <message>手機(jī)號碼不能為空</message> 16 </field-validator> 17 <field-validator type="regex"><!-- 正則表達(dá)式校驗(yàn)器 --> 18 <param name="expression"><![CDATA[^1[358]\d{9}$]]></param><!-- 表達(dá)式 --> 19 <param name="caseSensitive">false</param><!-- 區(qū)分大小寫 --> 20 <param name="trim">true</param><!-- 去掉兩邊空格 --> 21 <message>手機(jī)號碼格式不正確</message> 22 </field-validator> 23 </field> 24 </validators>

?

?

action類:

1 package cn.validate.action; 2 3 import com.opensymphony.xwork2.ActionContext; 4 import com.opensymphony.xwork2.ActionSupport; 5 6 @SuppressWarnings("serial") 7 public class XmlValidationAction extends ActionSupport { 8 private String username; 9 private String mobile; 10 11 public String getUsername() { 12 return username; 13 } 14 15 public void setUsername(String username) { 16 this.username = username; 17 } 18 19 public String getMobile() { 20 return mobile; 21 } 22 23 public void setMobile(String mobile) { 24 this.mobile = mobile; 25 } 26 27 public String update() { 28 ActionContext.getContext().put("message", "update success!"); 29 return "success"; 30 } 31 32 public String sace() { 33 ActionContext.getContext().put("message", "save success!"); 34 return "success"; 35 } 36 }

?

?

對于指定方法進(jìn)行校驗(yàn)我們又該怎么做呢?

很簡單,我們只需要改下xml文件名即可。格式為ActionClassName-ActionName-validation.xml,其中ActionName為struts.xml中action名稱。

比如:在XmlValidationAction中的update()進(jìn)行校驗(yàn),我們把xml文件名改為?XmlValidationAction-validation_update-validation.xml即可,其他的都一樣。

?

另外struts還提供了很多校驗(yàn)器,我發(fā)一些常用的出來,至于用法,大家可以看框架的源碼,所屬包為com.opensymphony.xwork2.validator.validators

struts框架提供的校驗(yàn)器
required必填校驗(yàn)器
requiredstring必填字符串校驗(yàn)器
stringlength字符串長度校驗(yàn)器
regex正則表達(dá)式校驗(yàn)器
int整數(shù)校驗(yàn)器
double雙精度浮點(diǎn)型校驗(yàn)器
filedexpression字段OGNL表達(dá)式校驗(yàn)器
email郵件校驗(yàn)器
url網(wǎng)址校驗(yàn)器
date日期校驗(yàn)器
conversion轉(zhuǎn)換校驗(yàn)器
visitor用于校驗(yàn)action中的符合屬性
expressionOGNL表達(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>你的主頁地址必須是一個(gè)有效的網(wǎng)址</message>
</field-validator>
</field>
</validators>

8.字符串長度檢驗(yàn)?
<validators>
<field name="user"> <field-validator type="stringlength">
<param name="minlength">4</param>
<param name="maxlength">20</param>
<message>你的用戶名長度必須在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ù)組,且長度必須在4到25之間</message>
</field-validator>
</field>
</validators> 接下來我舉一個(gè)簡單的登錄驗(yàn)證的例子: 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <%@ taglib uri="/struts-tags" prefix="s"%> 3 <% 4 String path = request.getContextPath(); 5 String basePath = request.getScheme() + "://" 6 + request.getServerName() + ":" + request.getServerPort() 7 + path + "/"; 8 %> 9 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 10 <html> 11 <head> 12 <base href="<%=basePath%>"> 13 <title>My JSP 'fail.jsp' starting page</title> 14 <meta http-equiv="pragma" content="no-cache"> 15 <meta http-equiv="cache-control" content="no-cache"> 16 <meta http-equiv="expires" content="0"> 17 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 18 <meta http-equiv="description" content="This is my page"> 19 </head> 20 <body> 21 <s:form action="user/login.action" validate="true"> 22 <table 23 style="border-style: solid; border-color: lightblue; position: absolute; top: 30px"> 24 <tbody> 25 <tr> 26 <td> 27 <div 28 style="margin-center: 32px; border-style: solid; border-color: lightblue; border-width: 2px;"> 29 <a>用戶名:</a> 30 <input id="username" name="user.name" type="text" /> 31 </div> 32 </td> 33 </tr> 34 <tr> 35 <td> 36 <div 37 style="margin-center: 32px; border-style: solid; border-color: lightblue; border-width: 2px"> 38 <a>密??碼:</a> 39 <input id="password" name="user.password" type="password" /> 40 </div> 41 </td> 42 </tr> 43 <!-- 彈出出錯(cuò)信息 --> 44 <tr> 45 <td> 46 <div id="msg"><s:fielderror/></div> 47 </td> 48 </tr> 49 <tr> 50 <td> 51 <div> 52 <span><input id="submit" type="submit" value="登錄" /> 53 </span> 54 </div> 55 </td> 56 </tr> 57 </tbody> 58 </table> 59 </s:form> 60 </body> 61 </html>

這里有個(gè)地方需要注意:form中要加入validate=“true”這個(gè)屬性。

?

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

?

1 <constant name="struts.custom.i18n.resources" value="globalMessages"></constant> 2 <include file="defaule.xml" /> 3 <!-- 有關(guān)用戶的操作 --> 4 <package name="user" extends="struts-default" namespace="/user"> 5 <action name="login" class="bbs.action.UserAction"> 6 <result name="success">/system/list.action</result> 7 <result name="input">/login.jsp</result> 8 </action> 9 </package>

?

有一點(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不能落下。

?

效果 火狐下面的中文語言: ie下的英文語言:

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/sineatos/p/4853192.html

總結(jié)

以上是生活随笔為你收集整理的转载 - Struts2基于XML配置方式实现对action的所有方法进行输入校验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文在线免费看视频 | 后宫秀女调教(高h,np) | 激情亚洲视频 | 欧美视频黄 | 91精品国产高清一区二区三区蜜臀 | 日韩福利电影在线 | 日韩欧美在线观看视频 | 夜夜爽影院 | 欧美精品一级在线观看 | 国产欧美一区在线观看 | 久久最新精品 | 天堂av免费| 超碰女 | 欧美国产精品一区二区三区 | 午夜天堂在线 | 视频国产一区 | 国产日韩欧美一区二区东京热 | 国产欧美日韩另类 | 国产在线二区 | 自拍偷拍99 | 秋霞亚洲| 777精品久无码人妻蜜桃 | 国产a免费 | 日本中文字幕在线免费观看 | 欧美日韩在线二区 | 夫妻淫语绿帽对白 | 亚洲国产一区在线观看 | 久久久久99精品成人片毛片 | 日韩美女少妇 | 国产精品久久久久99 | 欧美比基尼 | 欧美精品一区二区三区四区五区 | 美女屁股无遮挡 | 伊人久久五月天 | 久久一区 | 日韩av片在线播放 | 亚洲理论中文字幕 | 环太平洋3:泰坦崛起 | 岛国一区二区 | 3d动漫精品啪啪一区二区下载 | 免费看黄色片的网站 | 国产成人精品网 | 九九免费在线视频 | 欧美视频在线免费看 | 亚洲一区激情 | 亚洲一区二区三区免费观看 | 天堂网色 | 国产在线观看a | 日韩欧美中文字幕一区二区三区 | 中文字幕在线观看你懂的 | 日本一区二区高清不卡 | 国产农村妇女aaaaa视频 | 国产精品国产一区二区 | 在线播放黄色网址 | 爱爱小视频免费看 | 91射射| 欧美大片在线看 | 免费萌白酱国产一区二区三区 | 天天夜夜操 | 中文字幕91视频 | 96亚洲精品久久久蜜桃 | 亚洲女人毛茸茸 | 欧美福利视频导航 | 超碰夫妻 | 日韩高清不卡一区 | 亚洲小视频在线播放 | 人妻少妇偷人精品视频 | 91美女精品网站 | 欧美福利视频导航 | 影音先锋久久 | 亚洲免费影视 | 亚洲精品av中文字幕在线在线 | 好紧好爽再浪一点视频 | 妖精视频一区二区 | 亚洲日本在线播放 | 一级做a爱片久久毛片 | 亚洲欧美色图视频 | 韩国主播青草55部完整 | 精品日本一区二区三区在线观看 | 色综合色综合 | 午夜激情导航 | 久久久久久久久综合 | 一个色亚洲 | 91久久国产综合久久91精品网站 | 91久久| 久久综合第一页 | 丝袜天堂| www.精品视频 | 免费一级黄色片 | 国产性―交―乱―色―情人 | aaa在线视频 | www.国产色 | av白浆 | 日本在线不卡一区二区三区 | 爱逼av | 99riav在线 | 亚洲午夜18毛片在线看 | a色视频 | 欧美日韩一区二区三区在线 |