自定义的文案
version:>=1.5.0
errMsg是用于在当前的数据被拦截之后的输出,比如刚开始的介绍案例,如果
@Data
@Accessors(chain = true)
public class WhiteAEntity {
// 修饰属性name,只允许对应的值为a,b,c和null
@Matcher(value = {"a","b","c","null"}, errMsg = "输入的值不符合需求")
private String name;
private String address;
}
在拦截的位置添加核查,这里是做一层核查,在业务代码中建议封装到aop中对业务使用方不可见即可实现拦截
import lombok.SneakyThrows;
@Test
@SneakyThrows
public void test1(){
WhiteAEntity whiteAEntity = new WhiteAEntity();
whiteAEntity.setName("d");
// 可以使用带有返回值的核查
if (!MkValidators.check(whiteAEntity)) {
// 输出:数据校验失败-->属性 name 的值 d 不在只可用列表 [null, a, b, c] 中-->类型 WhiteAEntity 核查失败
System.out.println(MkValidators.getErrMsgChain());
// 输出:输入的值不符合需求
System.out.println(MkValidators.getErrMsg());
}
// 或者 可以采用抛异常的核查,该api为 MkValidators.check 的带有异常的检测方式
MkValidators.validate(whiteAEntity);
}
采用系统生成的文案
version:>=1.0.0
如果我没不写errMsg,如下这种,那么返回值为系统默认的错误信息,比如
@Data
@Accessors(chain = true)
public class WhiteAEntity {
// 修饰属性name,只允许对应的值为a,b,c和null
@Matcher(value = {"a","b","c","null"})
private String name;
private String address;
}
执行结果
import lombok.SneakyThrows;
@Test
@SneakyThrows
public void test1(){
WhiteAEntity whiteAEntity = new WhiteAEntity();
whiteAEntity.setName("d");
// 可以使用带有返回值的核查
if (!MkValidators.check(whiteAEntity)) {
// 输出:数据校验失败-->属性 name 的值 d 不在只可用列表 [null, a, b, c] 中-->类型 WhiteAEntity 核查失败
System.out.println(MkValidators.getErrMsgChain());
// 输出:属性 name 的值 d 不在只可用列表 [null, a, b, c] 中
System.out.println(MkValidators.getErrMsg());
}
// 或者 可以采用抛异常的核查,该api为 MkValidators.check 的带有异常的检测方式
MkValidators.validate(whiteAEntity);
}
errMsg中添加属性的值
version:>=1.6.0
自定义文案中如果要显示我们修饰的属性的值,那么可以采用变量#current即可
@Data
@Accessors(chain = true)
public class ErrMsgEntity3 {
@Matcher(value = {"a", "b", "c"}, errMsg = "值#current不符合要求")
private String name;
}
def "提供占位符的要求"() {
given:
ErrMsgEntity3 entity = new ErrMsgEntity3().setName(name)
expect:
def act = MkValidators.check(entity)
if (!act) {
println MkValidators.getErrMsgChain()
println MkValidators.getErrMsg()
}
Assert.assertEquals(result, act)
where:
name | result
"a" | true
"b" | true
"c" | true
"d" | false
}