@Validations(required = true,errorMsg = "请输入年龄",limit = {1,120},)//不为空时我想要,请输入正确年龄
private Integer age;
32 回复
errorMsg 只能一个吧,不知道如何弄成多个。
public static boolean el(String fieldName, Object obj, String el, String errorMsg, Errors errors) {
Context context = Lang.context();
context.set("value", obj);
Object val = El.eval(context, el);
if (val == null) {
return true;
} else if (val instanceof Boolean) {
return (Boolean)val;//true 和false 都直接返回了,就进入不了下面代码了
} else {
errors.add(fieldName, errorMsg);//除非不是布尔类型才能进入这里,但看代码注释el要返回布尔值,这是矛盾了吗?
return false;
}
}
@Validations(el = "value > 0 ? ture : 998", errorMsg = "请输入年龄")//这样就可以,只有false不返回布尔值就正常
但还是不明白怎么定义多个错误信息
好的
public static boolean el(String fieldName, Object obj, String el, String errorMsg, Errors errors) {
Context context = Lang.context();
context.set("value", obj);
Object val = El.eval(context, el);
if (val == null) {
return true;
} else if (val instanceof Boolean) {
return (Boolean)val;//true 和false 都直接返回了,就进入不了下面代码了
} else {
errors.add(fieldName, errorMsg);//除非不是布尔类型才能进入这里,但看代码注释el要返回布尔值,这是矛盾了吗?
return false;
}
}
这里如果是不完善的,也改一下哦。因为当false,必须返回非布尔类型,不然没有错误提示信息
<dependency>
<groupId>org.nutz</groupId>
<artifactId>nutz-plugins-validation</artifactId>
<version>1.r.65</version>
</dependency>
这应该是最新版的吧
请教一下您~
是这样写的吗?
@Validations(custom = "_", errorMsg = "请输入年龄")
private Integer age;
public Boolean verifyAge(String fieldName, String errorMsg, Errors errors) {
if (age == null) {
errors.add(fieldName, errorMsg);
return false;
} else if (age <= 0 || age > 120) {
errors.add(fieldName, "请输入正确年龄");
return false;
}
return true;
}
这里确定是3个参数吗?
但我看源码这里是需要四个参数才能去执行诶
Boolean ret = null;
if (paramCount == 1) {
find = true;
ret = (Boolean)md.invoke(obj);
} else {
if (paramCount != 4) { 之前3个参数,这里就没了
continue;
}
fm = FastClassFactory.get(md);
ret = (Boolean)fm.invoke(obj, new Object[]{fieldName, errorMsg, errors});
}
感谢您的耐心!
@zhouwt998 要不你clone代码,本地改改
还是有问题
@Validations(custom = "_" ,errorMsg = "请输入年龄")
public Boolean verifyAge(String fieldName, String errorMsg, Errors errors) {
if (age == null) {
errors.add(fieldName, errorMsg);
return false;
} else if (age <= 0 || age > 120) {
errors.add(fieldName, "请输入正确年龄"); //这里添加的没用
return false;
}
return true;
}
这里的errorMsg,就算后面erros里添加其他错误,最终也只会返回errorMsg的错误信息
添加回复
请先登陆