當前位置:編程學習大全網 - 編程語言 - Struts1.x系列教程(11):Validator驗證框架高級應用

Struts1.x系列教程(11):Validator驗證框架高級應用

 在《Struts x系列教程( ) Validator驗證框架入門》壹文中給出的例子中的name age和email都是簡單的屬性 如果是嵌套的屬性(也就是壹個屬性的數據類型是另外壹個帶有屬性的類) 可以使用圓點( )符號來訪問 如我們可以通過設置<field>元素的property屬性值為 employee salary 來驗證employee屬性中的salary屬性

 如果要驗證的索引屬性 我們可以使用<field>元素的indexedListProperty屬性來指定這個索引屬性 如下面代碼如示

  <field?indexedListProperty= items ?depends=>?</field>

 在使用上述配置代碼後 Validator框架將會按著depends屬性中的約束來驗證items屬性的每壹個值 我們還可以將property和indexedListProperty配合使用 如下面代碼所示

  <field?indexedListProperty= items ?property= employee age ?depends=>?</field>

 Validator框架將根據上述的配置代碼來驗證items屬性中的每壹項的employee age屬性

  二 使用常量和變量

  常量

 在《Struts x系列教程( ) Validator驗證框架入門》壹文中的name屬性使用了mask進行驗證 這個mask實際上代表了壹個正則表達式 但如果在validator xml文件中有很多個地方需要用到這個正則表達式 那就它就會在很多地方重復 為此 我們可以使用常量來避免這種事情發生

 常量分為全局常量和局部常量

 ( )全局常量

 全局常量可以被用在validator xml中定義的所有form中 我們可以使用<global>元素來配置全局常量 為了配置全局常量 將如下的內容放到第壹個<formset>元素的前面

  ?<global>?<constant>?<constant name>mask</constant name>?<constant value>?^[a zA Z ]*$?</constant value>?</constant>?</global>?<formset>

 ( )局部常量

 局部常量需要放到<formset>元素的開始位置(根據DTD的定義 局部常量只能放到這裏 而全局常量可以放在第壹個<formset>元素的前面 也可以放到<formset>的後面) 如下面的代碼所示

  ?<formset>?<constant>?<constant name>mask</constant name>?<constant value>?^[a zA Z ]*$?</constant value>?</constant>?<form?name= firstValidatorForm >?</formset>

 我們可以編寫如下的代碼來使用mask常量

  <var> <var name>mask</var name> <var value>?${mask}</var value></var>

  變量

 Validator框架通過<var>元素來定義變量 變量將作為<field>的子元素被使用 主要向depends屬性值(如mask)以及<msg>的錯誤信息傳遞數據 如下面的代碼通過變量required將 姓名 傳遞給了錯誤信息的第壹個參數{ }

  <field?property= name ?depends= required? > <msg?name= required ?key= error name blank ?/> <arg?name= required ?key= ${var:required} ?position= ?resource= false ?/> <var> <var name>required</var name> <var value>姓名</var value> </var></field>

  三 客戶端驗證

 使用Validator框架的好處之壹就是可以很容易地將服務端驗證變為客戶端驗證(JavaScript驗證) 為了完成這壹轉換 我們只需要修改兩個地方 現在就拿《Struts x系列教程( ) Validator驗證框架入門》中的firstValidator jsp為例來說明要修改什麽

 首先 在firstValidator jsp中的任何地方(當然 任何地方指的是客戶端代碼區 並不包括<%……%>和<%——…… ——%>所包含的內容)添加如下的< javascript>標簽

  <:javascript?formName= firstValidatorForm />

 然後在< form>標簽中加入如下的屬性

  onsubmit= return?validateFirstValidatorForm(this);

lishixinzhi/Article/program/Java/ky/201311/28301

  • 上一篇:我父母反對我在編程競賽中的作文。
  • 下一篇:密室逃脫8遊戲第八關怎麽過圖解
  • copyright 2024編程學習大全網