我搜索了一个@NotNull
java注释,并从javax找到了一个。我尝试使用它但遇到了同样的issues described here。简而言之:我需要设置一些东西来使它工作 - 但我实际上并不需要所有这些(我在普通的Java / Groovy上下文中,没有JavaEE)。是否有替代上述注释可以单独工作,在哪里可以找到它们?
答案 0 :(得分:2)
椭圆形可以帮助你解决这个问题。
从http://mvnrepository.com/artifact/net.sf.oval/oval/1.31下载jar并查看此处的文档http://oval.sourceforge.net/
例如:
import net.sf.oval.constraint.MaxLength;
import net.sf.oval.constraint.NotEmpty;
import net.sf.oval.constraint.NotNull;
public class Request {
@NotNull
@NotEmpty
@MaxLength(value = 30)
private String id;
//.....getters setters......
}
以上将是你的pojo
/**
* Method returns if valid request or not
*/
private boolean isValid(Request request) {
List<ConstraintViolation> violations = validator.validate(request);
if (violations.size() > 0) {
return false;
} else {
return true;
}
}
并将进行上述验证。
您还可以在线找到更多示例。
答案 1 :(得分:0)
你可以使用groovy完全正确的验证。有hibernate-validator实现。 e.g。
@Grapes([
@Grab('javax.validation:validation-api:1.1.0.Final'),
@Grab('org.glassfish:javax.el:3.0.0'),
@Grab('org.hibernate:hibernate-validator:5.1.3.Final'),
])
import javax.validation.*
import javax.validation.constraints.*
class Pogo {
@NotNull
String name
@NotNull
@Min(1L)
Long size
}
def validator = Validation.buildDefaultValidatorFactory().getValidator()
println validator.validate(new Pogo()).collect{ "Error on $it.propertyPath: $it.message" }
//; [Error on name: may not be null, Error on size: may not be null]
println validator.validate(new Pogo(name:"x", size:0)).collect{ "Error on $it.propertyPath: $it.message" }
//; [Error on size: must be greater than or equal to 1]