项目介绍
一个好用的快速的参数校验框架支持直接调用校验并提供Sprig-webmvc拦截器对请求参数进行校验
软件架构没啥架构,不强制依赖第三方Jar包
安装教程PS:正在往Mave中央仓库发布中暂时使用拉取项目打包的本地的方式使用
拉取项目
在项目跟目录执行mvcleaistall
如没问题就可以在项目中直接使用了
<depedecy> <groupId>com.yuxua66</groupId> <artifactId>ehi-verificatio</artifactId> <versio>1.0-SNAPSHOT</versio> </depedecy>如非Mave项目直接打包后找到Jar放入项目中即可
使用说明首先我们先来认识几个常用的类和注解
Verificatio,Param,Le
EhiVerificatio,VerificatioResult,Result,CostFormat
Param:标记一个参数要进行校验
参数:
value(Strig)=字段名称
require(boolea)=是否需要(默认为需要)
asFor(Strig)=必须跟asFor的字段内容一致
ullFor(Strig)=ullFor的字段内容和当前内容不能同时为空
ullMsg(Strig)=字段为空的错误提示,默认使用全局提示
errorMsg(Strig)=字段校验不通过的错误提示,默认使用全局提示
patter(Strig)=用来校验的正则
le(@Le)=长度校验
Verificatio:标记一个类,Bea只有此注解才会生效参数:params(@Param)=字段列表
@Verificatio(params = { @Param(value = "ame", require = false, le = @Le(mi = 10, max = 20),errorMsg = "用户名必须为10~20位字符"), @Param(value = "password"), @Param(value = "email", patter = CostFormat.EMAIL)})public class User exteds HashMap { private Strig ame; private Strig password; private Strig email; @Param(value = "age") private it age; public Strig getName() { retur ame; } public void setName(Strig ame) { this.ame = ame; } public Strig getPassword() { retur password; } public void setPassword(Strig password) { this.password = password; } public Strig getEmail() { retur email; } public void setEmail(Strig email) { this.email = email; } public it getAge() { retur age; } public void setAge(it age) { this.age = age; }}demo
public static void mai(Strig ...args){ User user = ew User(); user.setName("1111111111"); user.setEmail("eqeq@qq.com"); user.setPassword("dsadsa"); VerificatioResult verificatioResult = ew EhiVerificatio().verificatio(user); System.out.pritl(verificatioResult.isVerificatio()); System.out.pritl(verificatioResult.getErrorMsg()); }//校验一个实体 实体可以集成Map会自动区分VerificatioResult verificatioResult = ew EhiVerificatio().verificatio(user);返回一个校验结果verificatioResult.isVerificatio();//返回是否有校验不通过字段verificatioResult.getErrorMsg();//返回校验不通过的提示语,如上行代码返回true则此代码返回空字符串下面我们来学习一下高级的使用方式,这里我们使用sprigboot进行集成
拦截器配置
package com.km66.kowledge.support.cofig.web;import com.km66.kowledge.support.iterceptor.AuthIterceptor;import com.km66.kowledge.support.resolver.DictArgumetResolver;import com.yuxua66.ehi.verificatio.core.EhiVerificatio;import com.yuxua66.ehi.verificatio.iterceptor.ParamIterceptor;import org.sprigframework.boot.web.servlet.ServletListeerRegistratioBea;import org.sprigframework.cotext.aotatio.Bea;import org.sprigframework.cotext.aotatio.Cofiguratio;import org.sprigframework.web.cotext.request.RequestCotextListeer;import org.sprigframework.web.method.support.HadlerMethodArgumetResolver;import org.sprigframework.web.servlet.cofig.aotatio.IterceptorRegistry;import org.sprigframework.web.servlet.cofig.aotatio.ResourceHadlerRegistry;import org.sprigframework.web.servlet.cofig.aotatio.WebMvcCofigurer;import java.util.List;@Cofiguratiopublic class WebMvcCofig implemets WebMvcCofigurer {@Overridepublic void addIterceptors(IterceptorRegistry registry) { //创建核心校验器 EhiVerificatio ehiVerificatio = ew EhiVerificatio(); //添加参数拦截器registry.addIterceptor(ew ParamIterceptor(ehiVerificatio));}}Cotroller配置
@RequestMappig(path = "updateAccessTokeByRefreshToke", method = RequestMethod.POST) @ResposeBody @Verificatio(params = { @Param(value = "userame", le = @Le(mi = 10, max = 20),errorMsg = "用户名格式不正确",ullMsg = "用户名必须输入"), @Param(value = "email" ,patter = CostFormat.EMAIL), @Param(value = "password") }) public RespEtity updateAccessTokeByRefreshToke(@RequestParam Map<Strig, Object> params) { try { retur usersService.updateAccessTokeByRefreshToke(params); } catch (Exceptio e) { logger.error("服务器异常", e); retur RespEtity.fail(); } }
评论