【发布时间】:2011-02-01 20:30:22
【问题描述】:
谁能推荐一个我们可以在我们的java应用程序中使用的好的验证框架? 我们的应用程序中没有表单,但我们将检索和发送数据传递给多个系统。 一旦我们得到这些数据,我们想把它转换成一个 pojo 并对那个 pojo 执行一些验证。 一个允许您将验证规则放入 xml 或平面文件的验证框架将是理想的
非常感谢您对此的任何帮助
谢谢 达米安
【问题讨论】:
标签: java validation
谁能推荐一个我们可以在我们的java应用程序中使用的好的验证框架? 我们的应用程序中没有表单,但我们将检索和发送数据传递给多个系统。 一旦我们得到这些数据,我们想把它转换成一个 pojo 并对那个 pojo 执行一些验证。 一个允许您将验证规则放入 xml 或平面文件的验证框架将是理想的
非常感谢您对此的任何帮助
谢谢 达米安
【问题讨论】:
标签: java validation
默认元数据源是注释,能够通过使用 XML 验证描述符覆盖和扩展元数据。
【讨论】:
Java EE 6 通过注解(例如@NotNull、@Size 等)具有非常强大的验证机制。看看Java Bean Validation。最好的部分是您可以定义自己的此类注释,这些注释将执行您可能需要的任何自定义验证。
【讨论】:
还有Oval 可以使用注释(@NotNull、@MaxLength)、POJO 或 XML 声明约束。您还可以创建自己的自定义约束。
【讨论】:
基于键值域对象的Ujorm framework 提供了特殊的验证器,其主要特点是:
JavaBean 中的使用验证器示例:
import static org.ujorm.Validator.Build.*;
public class ValidBo extends AbstractUjo implements Serializable {
/** Factory */
private static final KeyFactory<ValidBo> f = newFactory(ValidBo.class);
/** Keys: */
public static final Key<ValidBo, Long> PID = f.newKey(notNull());
public static final Key<ValidBo, Integer> CODE = f.newKey(between(0, 10));
public static final Key<ValidBo, String> NAME = f.newKey(regexp("T.*T"));
public static final Key<ValidBo, Double> CASH = f.newKey(min(0.0).and(notNull()));
static {
f.lock();
}
// Setters:
public void setPid(Long pid) {
PID.setValue(this, pid);
}
public void setCode(Integer code) {
CODE.setValue(this, code);
}
public void setName(String name) {
NAME.setValue(this, name);
}
public void setCash(Double cash) {
CASH.setValue(this, cash);
}
// Getters ...
}
请参阅documentation 了解更多信息。
【讨论】: