使用Validator做SpringMVC的驗證框架 - Validator前端驗證
章節列表
- 第一章:使用Validator做SpringMVC的驗證框架 - 配置SpringMVC環境
- 第二章:使用Validator做SpringMVC的驗證框架 - 使用Validator
- 第三章:使用Validator做SpringMVC的驗證框架 - Validator前端驗證
- 第四章:使用Validator做SpringMVC的驗證框架 - 自定義驗證元件
上一章只為大家介紹了Validator的後端驗證功能,接下來就為大家介紹一下Validator前端功能,你會發現他的巧妙之處。
Validator框架原始碼地址:https://github.com/devefx/validator
1 - 配置前端驗證配置
首先我們新建一個“com.devefx.website.validator.config”包,並編寫Config.java,並實現“com.devefx.validation.web.config.ValidatorConfig”介面
Config.java
package com.devefx.website.validator.config;
import com.devefx.validation.web.config.Modules;
import com.devefx.validation.web.config.Routes;
import com.devefx.validation.web.config.ValidatorConfig;
import com.devefx.website.validator.RegisterValidator;
public class Config implements ValidatorConfig {
public void configModules(Modules modules) {
// 這裡可以新增自定義驗證元件
}
public void configRoute(Routes routes) {
// 這裡配置驗證器的訪問路線
// 設定基準路徑
routes.setBasePath("/validator");
// 註冊驗證器
routes.add("/registerValidator.js", RegisterValidator.class);
}
}
上面這段配置就是告訴 Validator框架根據 RegisterValidator.class 生成一個對應JavaScript指令碼,他的相對訪問路徑是:/validator/registerValidator.js
接下來配置一下web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<!-- 配置SpringMVC DispatcherServlet -->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-*.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 配置Validator前端驗證功能 -->
<servlet>
<servlet-name>validator</servlet-name>
<servlet-class>com.devefx.validation.web.ValidatorServlet</servlet-class>
<!-- validator核心js訪問路徑 -->
<init-param>
<param-name>url</param-name>
<param-value>/validator/validator.js</param-value>
</init-param>
<!-- 告訴Validator配置類 -->
<init-param>
<param-name>configClass</param-name>
<param-value>com.devefx.website.validator.config.Config</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>validator</servlet-name>
<url-pattern>/validator/*</url-pattern>
</servlet-mapping>
</web-app>
好了,現在萬事俱備。我們開啟瀏覽器訪問一下validator核心js和我們在Config.java中註冊的RegisterValidator.class
http://localhost/validator/validator.js
http://localhost/validator/registerValidator.js
從上面可以看得到Validator框架已經自動幫我們生成了JavaScript的驗證程式碼,是不是很簡單。趕緊在我們的頁面中使用起來吧。
2 - 準備工作
首先我們需要設計一下提示錯誤的樣式,比如像下面這樣,在文字框右側顯示紅色的錯誤提醒
程式碼大概是這樣的
register.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<title>註冊</title>
<style type="text/css">
.error { color: red; padding-left: 5px }
</style>
</head>
<body>
<form id="registerForm" action="/do/register" method="post">
<table>
<tr>
<td>使用者名稱:</td>
<td><input name="username"/><span class="error">使用者名稱不能為空</span></td>
</tr>
<!-- 下面的就省略了 -->
</table>
</form>
</body>
</html>
接下來就要開始使用Validator實現前端驗證的功能了,準備工作
register.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<title>註冊</title>
<!-- Validator前端驗證功能依賴jQuery庫 -->
<script src="http://apps.bdimg.com/libs/jquery/1.6.4/jquery.js"></script>
<!-- Validator前端驗證功能的核心js -->
<script src="/validator/validator.js"></script>
<!-- 使用者配置的驗證器 -->
<script src="/validator/registerValidator.js"></script>
<style type="text/css">
.error { color: red; padding-left: 5px }
</style>
</head>
<!-- 此處省略 -->
</html>
3 - 認識Validator前端驗證方法
我給大家介紹一下Validator前端驗證器提供給使用者的幾個方法
jQuery擴充套件 - validator() 方法
驗證表單核心方法
語法
$(selector).validator(params)
引數 | 描述 |
---|---|
params | 必填。用於配置 validator 驗證的鍵值對集合 |
引數
name
型別:String
告訴validator使用哪個驗證器進行驗證。
(當頁面只要一個驗證器的時候可以省略)
success
型別:Function
驗證通過後的回撥函式
error
型別:Function
驗證失敗後的回撥函式
有兩個引數:錯誤資訊、驗證的欄位
注意:當“驗證欄位”引數為空的時候表示全部驗證,否則表示只驗證了此欄位
例項
$(selector).validator({
name: “ValidatorName”,
success: function() {
// js驗證通過
},
error: function(error, field) {
// js驗證失敗
}
});
jQuery擴充套件 - commit() 方法
用來提交表單資料
語法
$(selector).commit(callback)
引數 | 描述 |
---|---|
callback | 必填。提交成功後的回撥函式。 |
引數
callback
型別:Function
引數:由伺服器返回,並處理成JSON資料;描述狀態的字串。
注意:這其實是一個非同步ajax請求
例項
$(selector).commit(function(result) {
// 伺服器響應
});
jQuery擴充套件 - findInputByName() 方法
根據Input控制元件名稱來查詢Input控制元件
語法
$(selector).findInputByName(name)
引數 | 描述 |
---|---|
name | 必填。要查詢的input控制元件名稱。 |
例項
$(selector).findInputByName(“username”);
4 - 正式使用Validator前端驗證器
前面我們認識了Validator提供的函式,下面我們就要用這些函式為我們實現驗證功能
register.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<title>註冊</title>
<!-- Validator前端驗證功能依賴jQuery庫 -->
<script src="http://apps.bdimg.com/libs/jquery/1.6.4/jquery.js"></script>
<!-- Validator前端驗證功能的核心js -->
<script src="/validator/validator.js"></script>
<!-- 使用者配置的驗證器 -->
<script src="/validator/registerValidator.js"></script>
<style type="text/css">
.error { color: red; padding-left: 5px }
</style>
<script type="text/javascript">
$(function () {
var selector = $("#registerForm");
selector.validator({
success: function () {
// 刪除頁面全部的錯誤提示
$("#registerForm .error").remove();
// 錯誤處理方法
var errorMethod = this.error;
// 提交表單到後臺
selector.commit(function (result) {
// 判斷後臺是否驗證通過
if (result.success) {
alert("提交成功!");
} else if (result.data) {
// 重新處理錯誤
errorMethod(result.data, null);
}
});
},
error: function (error, field) {
// 處理submit動作的錯誤
if (field == null) {
// 刪除頁面全部的錯誤提示
$("#registerForm .error").remove();
// 根據錯誤資訊,重新顯示錯誤資訊
for (var code in error) {
selector.findInputByName(code).after('<span class="error">' + error[code] + '</span>');
}
return;
}
// 處理field驗證的錯誤
// 根據field刪除相關錯誤提示
selector.findInputByName(field).next().remove();
// 如果field驗證失敗
if (error != null) {
// 在頁面顯示field的錯誤資訊
selector.findInputByName(error.code).after('<span class="error">' + error.message + '</span>');
}
}
});
});
</script>
</head>
<body>
<form id="registerForm" action="/do/register" method="post">
<table>
<tr>
<td>使用者名稱:</td>
<td><input name="username"/></td>
</tr>
<!-- -->
<tr>
<td>密碼:</td>
<td><input name="password" type="password"/></td>
</tr>
<tr>
<td>確認密碼:</td>
<td><input name="password_safe" type="password"/></td>
</tr>
<tr>
<td>手機號:</td>
<td><input name="phoneno"/></td>
</tr>
<tr>
<td>郵箱:</td>
<td><input name="email"/></td>
</tr>
<tr>
<td>出身日期:</td>
<td><input name="birthday" type="date"/></td>
</tr>
<tr>
<td>個人主頁:</td>
<td><input name="homepage"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="註冊"/>
<input type="reset" value="重置"/>
</td>
</tr>
</table>
</form>
</body>
</html>
如果網站設計是統一風格的,上面的是可以重用的。
Validator的前端驗證功的介紹能到此結束,下一章我為大家介紹Validator自定義驗證元件的方法
相關文章
- 使用 Spring Validator 介面實現驗證Spring
- Validator | validate 驗證規則
- 2. 驗證器 Validator
- Between validator常用驗證規則
- Laravel 驗證器 Validator::make 的用法Laravel
- 在非Laravel專案中使用Validator驗證器Laravel
- NPM酷庫041:validator,驗證工具集合NPM
- SpringBoot使用validator校驗Spring Boot
- Django筆記四十二之model使用validator驗證器Django筆記
- SpringBoot整合Hibernate Validator實現引數驗證功能Spring Boot
- PHP 表單提交後臺資料驗證 ValidatorPHP
- golang常用庫:欄位引數驗證庫-validatorGolang
- Hibernate Validator、Regex 和手動驗證:哪個更快?
- 使用Hibernate-Validator優雅的驗證RESTful Web Services的引數RESTWeb
- 用fluent-validator,進行Java服務端驗證Java服務端
- Angular 表單驗證類庫 ngx-validator 1.0 正式釋出Angular
- 酷 Go 推薦 Validator 網路請求資料驗證包Go
- 偷懶之 validator 驗證器免寫 messages 自動中文輸出
- gordensong/laravel-table-validator 資料表欄位驗證收集器GoLaravel
- SpringMVC表單驗證器的使用SpringMVC
- 如何在Go語言中實現表單驗證?整一個validator吧!Go
- Fluent-Validator 業務校驗器
- Hibernate Validator校驗引數全攻略
- Go 框架 Gin使用 validator 若干實用技巧Go框架
- Play框架如何驗證使用者框架
- django 驗證碼框架Django框架
- validator
- songyz_validator上線,擴充套件validator這麼香麼,可以早下班和女盆友一起擼貓咯之驗證規則(二)套件
- 前端表單驗證的目的前端
- 前端獲取驗證碼前端
- 雙重保險——前端bootstrapValidator驗證+後臺MVC模型驗證前端bootMVC模型
- gin validator
- Map傳參優雅檢驗,試試json schema validatorJSON
- validator庫在gin中的使用
- hyperf 驗證器的使用
- validation客戶端驗證框架使用手冊客戶端框架
- SpringBoot整合JWT做身份驗證Spring BootJWT
- 驗證碼機制之驗證碼重複使用
- 驗證碼原理及驗證