迷失北京

          BlogJava 聯(lián)系 聚合 管理
            60 Posts :: 0 Stories :: 13 Comments :: 0 Trackbacks
          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>

          接下來(lái)我舉一個(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ù)了,不過(guò)有什么結(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不能落下。
          效果
          火狐下面的中文語(yǔ)言:
          ie下的英文語(yǔ)言:


          posted on 2010-11-15 21:34 王康 閱讀(10203) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 上蔡县| 犍为县| 巴林右旗| 乡宁县| 罗源县| 玉门市| 义乌市| 湘乡市| 安新县| 英山县| 应城市| 兴山县| 徐闻县| 德庆县| 安仁县| 广丰县| 保靖县| 太和县| 麻阳| 施秉县| 正安县| 佳木斯市| 宝丰县| 阿克| 乐平市| 昔阳县| 高唐县| 崇文区| 涡阳县| 元谋县| 承德县| 铜陵市| 康定县| 海原县| 厦门市| 会昌县| 高州市| 长岛县| 宜黄县| 永新县| 甘南县|