整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          jquery.Validate 形式的驗證方式

          halo.validate

          @Validate(rules = { 
           @Rule(value = "required:true", message = "用戶名不能為空"), 
           @Rule(value = "checkUsernameExists:", message = "用戶名不能重復"), 
           @Rule(value = "maxlength:10", message = "輸入長度最多是 10 的字符串(漢字算一個字符)。"), 
           @Rule(value = "minlength:5", message = "輸入長度最小是 5 的字符串(漢字算一個字符)。")
          })
          private String username;
          @Validate(rules = { @Rule(value = "required:true", message = "密碼不能為空") })
          private String password;
          public static void main(String[] args) {
           User user = new User();
           user.setUsername("admin");
           IValidateService validate = new BaseValidateService();
           validate.validate(user);
          }
          

          jquery.Validate 形式的驗證方式 繼承Validation 實現驗證 配置ValidationRegister 注解

          #例子:

          ###校驗器 @ValidationRegister("checkUsernameExists") public class UsernameValidation implements Validation {

           @Override
           public Boolean validate(Object attrValue, Class<?> attrType, Object params) {
           if (attrValue.equals("admin")) { return true; }
           return false;
           }
          }
          

          ###配置 加入validate 配置(halo.validate.yaml 默認放于/src/main/resources): message 提示信息, packagesToScan是掃描注冊的驗證類

          validate:
          	packagesToScan: com.dasuanzhuang.halo.test	
           message:
           required: 不能為空
           maxlength: 長度不能超過{0}
           minlength: 長度不能小于{0}	
          

          ###應用:

          @Validate(rules = { 
           @Rule(value = "required:true", message = "用戶名不能為空"), 
           @Rule(value = "checkUsernameExists:", message = "用戶名不能重復")
          })
          private String username;
          

          ###驗證 public static void main(String[] args) { User user = new User(); user.setUsername("admin"); IValidateService validate = new BaseValidateService(); validate.validate(user); }

          ###出錯提示: Exception in thread "main" com.dasuanzhuang.halo.validate.error.ValidateException: [User.username(java.lang.String)] at com.dasuanzhuang.halo.validate.BaseValidateService.validate(BaseValidateService.java:115) at com.dasuanzhuang.halo.test.Test.main(Test.java:45) Caused by: com.dasuanzhuang.halo.validate.error.ValidateException: [rule:{checkUsernameExists:},message:用戶名不能重復] at com.dasuanzhuang.halo.validate.BaseValidateService.parseRuleAndValidate(BaseValidateService.java:60) at com.dasuanzhuang.halo.validate.BaseValidateService.validate(BaseValidateService.java:83) ... 1 more

          以上是halo.validate的全部配置,配置packagesToScan標簽可以掃描ValidationRegister注解的類

          #@Validate 驗證注解: 可以注釋到屬性上 ,驗證的時候會獲取這個注解 rules,規則列表,可以存在多個驗證規則 objClass:如果對象內存在驗證對象,可以添加objClass = Role.class 標識當前對象需要驗證,如果不加,只驗證規則驗證

          #@Rule 是驗證規則: 你可以在value中填寫驗證規則如: required:true ,必須以:分割 左邊代表校驗器標識,右邊標識傳遞的參數,沒有參數可以為空,多余一個值用[1,2,3]類似數組的表現形式:驗證注解中可以存在多個規則。

          #校驗器標識

          系統默認的校驗器包括required,maxlength,minlength,也可以自定義校驗器,以下校驗器標識為checkUsernameExists
          @ValidationRegister("checkUsernameExists")
          public class UsernameValidation implements Validation {
           @Override
           public Boolean validate(Object attrValue, Class<?> attrType, Object params) {
           if (attrValue.equals("admin")) { return true; }
           return false;
           }
          }
          

          #自定義校驗器:

          繼承Validation 并且 需要配置注解ValidationRegister,實現validate(Object attrValue, Class<?> attrType, Object params) 方法,attrValue 傳入屬性值,attrType屬性類型,params 冒號后面的參數,如果是多個值,以String[] 形式傳遞
          required,maxlength,minlength 使用說明:
          required:true 對象不為空,如果是String類,默認會驗證是否為空字符串
          maxlength:10 表示長度不能超過10
          minlength:10 表示長度最小不能小于10
          

          #支持內部對象驗證

          @Validate(
           rules = {
           @Rule(value = "required:true", message = "角色不能為空")
           },
           objClass = Role.class
          )
          private Role role ;
          @Validate(
           rules = {
           @Rule(value = "required:true", message = "角色list不能為空")
           },
           objClass = Role.class
          )
          private List<Role> roles ; 
          @Validate(
           rules = {
           @Rule(value = "required:true", message = "角色map不能為空")
           },
           objClass = Role.class
          )
          private Map<String,Role> roleMap;
          

          role是嵌套對象,在@Validate 中指定objClass = Role.class,就可以完成嵌套對象驗證

           @Validate(rules = { 
           @Rule(value = "required:true", message = "用戶名不能為空"), 
           @Rule(value = "checkUsernameExists:", message = "用戶名不能重復"), 
           @Rule(value = "maxlength:10", message = "輸入長度最多是 10 的字符串(漢字算一個字符)。"), 
           @Rule(value = "minlength:5", message = "輸入長度最小是 5 的字符串(漢字算一個字符)。")
          }, objClass = Role.class)
          

          #與spring 集成 ValidationBuilder.createValidation 根據名字返回Validation對象 ,建議重新定義ValidationBuilder.createValidation方法

          web開發中,往往會需要對用戶輸入的內容進行合法的校驗,防止用戶輸入的內容無效等存入數據庫意義不大還浪費資源。比如某些網站在注冊過程中身份證號碼是否合法、電話號碼是否填完整、郵箱格式是否正確。下面就介紹一種強大的表單驗證插件,jquery validate 插件為表單提供了強大的驗證功能,讓客戶端表單驗證變得更簡單,同時提供了大量的定制選項,滿足應用程序各種需求。該插件捆綁了一套有用的驗證方法,包括 URL 和電子郵件驗證,同時提供了一個用來編寫用戶自定義方法的 API。

          jquery validate 有一套自己的校驗規則,這些網上查資料都會有,下面截圖展示下它自己的校驗規則

          validate校驗規則

          首先要先導入這三個js到你的項目里面,然后在頁面添加引用進去

          • jquery.js

          • jquery.validate.min.js

          • messages_zh.js

          一般來說validate的實現方式有兩種,下面分別介紹下著兩種不容的實現方式:

          1. 將校驗規則寫到控件中,代碼實例如下圖

          方式一

          2.將校驗規則寫到外部 js 代碼中,頁面和js分別如下圖

          頁面代碼

          外部Js代碼

          上面兩種不同的方式都是在點擊提交按鈕的時候才會觸發校驗。個人覺得jquey validate功能是比較強大的,我這里只是介紹了其中的冰上一角而已,如果你想了解的更多可以去官網上查閱更多API。歡迎大家提出你的意見或建議哈。

          釋:js文件自行下載

          html頁面:

          <!doctype html>

          <html lang="en">

          <head>

          <meta charset="utf-8">

          <title>jQuery validation之表單驗證</title>

          <script src="./jquery-1.11.1.min.js"></script>

          <script src="./jquery.validate.min.js"></script>

          <script>

          $(function () {

          $("#login").validate({

          rules:{//驗證規則

          name:{

          required:true,

          minlength:2,

          maxlength:10

          },

          password:{

          required:true,

          }

          },

          messages:{//提示信息:與rules是"一一對應"的

          name:{

          required:'不能為空',

          minlength:'最小為2位',

          maxlength:'最大為10位'

          },

          password:{

          required:'不能為空',

          }

          }

          })

          });

          </script>

          </head>

          <body>

          <form action="" method="get" id="login">

          用戶名:<input name="name" type="text"><br />

          密碼:<input name="password" type="password" /><br />

          <input type="submit" class="button" value="登錄">

          </form>

          </body>

          </html>


          主站蜘蛛池模板: 精品国产一区二区三区久久久狼| 日韩中文字幕一区| 无码少妇一区二区浪潮av| 91在线一区二区| 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 国产手机精品一区二区| 99久久综合狠狠综合久久一区| 亚洲AV综合色一区二区三区| 真实国产乱子伦精品一区二区三区 | 中文字幕日韩丝袜一区| 91精品一区二区综合在线| 久久久精品人妻一区二区三区蜜桃| 日韩一区二区在线观看视频| 亚洲综合无码一区二区| 国产手机精品一区二区| 精产国品一区二区三产区| 麻豆精品人妻一区二区三区蜜桃| 亚洲欧美日韩一区二区三区在线 | 色婷婷香蕉在线一区二区| 精品一区二区久久久久久久网精 | 一区视频免费观看| 中日韩一区二区三区| 久久久综合亚洲色一区二区三区 | 亚洲日韩精品一区二区三区无码 | 国产乱码伦精品一区二区三区麻豆 | 白丝爆浆18禁一区二区三区| 精品一区二区三区免费毛片| 亚洲国产成人久久一区WWW| 中文字幕一区二区人妻| 91在线视频一区| 国产亚洲综合精品一区二区三区| 亚洲国产精品成人一区| 亚洲AV无码一区东京热久久| 偷拍激情视频一区二区三区| 国产精品一区二区电影| 在线精品动漫一区二区无广告| 亚洲制服丝袜一区二区三区| 在线观看日韩一区| 国99精品无码一区二区三区| 国产一区二区三区影院| 一区二区三区视频网站|