1

我正在 spring mvc 中编写一个模型类。我想做域验证。

在域类中,我有 3 个变量,比如 isABCApplicable、a​​bcValue1、abcValue2:

private Boolean isABCApplicable;

private BigDecimal abcValue1;

private BigDecimal abcValue2;

.......吸气剂和二传手......

现在我的目标是

如果 isABCApplicable 为真,那么我想将 abcValue1 设为

@NotNull
 abcValue1 

@NotNull 
abcValue2

有什么办法可以做到这一点?

4

2 回答 2

1

我相信这可以通过字节码检测来实现。ASM 就是这样一种工具,您可以使用它来操作 Java 字节码。看看http://asm.ow2.org/index.html

于 2012-06-20T09:00:34.560 回答
1

为什么要使用注释?
为您的模型对象创建自己的 DataBinder 并在对象构造函数中进行所有验证。
或者,如果您真的想要注释,您可以编写自己的约束,例如 @NotNullIfApplicable,有关详细信息,请参阅使用 Hibernate Validator (JSR 303)进行跨字段验证。

于 2012-06-20T10:05:07.197 回答