初学OVAL遇到这种情况:
一个User的model,当你登录的时候,你只需要验证用户名和密码字段。当你注册用户的时候你需要验证用户名,密码,邮箱等等。
出现这种情况的时候,不知道该怎么办,也问过一些用过OVAL框架的人,他们说写两个DTO分别来验证。
经过几天的思索,我想到了场景验证,这也是我坐PHP时候用Yii框架时,Yii框架提供的验证规则。
我觉得挺适合这个场景的。也就是说把登录作为一个场景,把注册作为另一个场景,OVAL验证的时候根据场景的不同来验证不同的字段,这样就不需要创建多个DTO。
这里就简单说说我的实现方案(也许OVAL提供了这种问题的解决方案),直接上代码了:
场景验证的注解:
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ValidateScene {
String[] scene();
}
在Model上使用:<