在开发jfinal项目的时候,碰到一个问题,需要数据验证,但是有很多action需要数据验证,每个action的验证需求都是不同的。
如果用Validator组件的话,尽管实现了验证和逻辑解耦和,但是貌似每个action都得写个Validator类来进行验证,,又或者先写个通用的,然后写每个个性化的,以实现最大的复用。
So,就需要数据验证的action和Validator类的数量几乎是要相等的,那样。。。貌似。。。有点糟糕!!!
Validator 中可以获取 actionKey、controllerKey 等数据,所以可以将大量的验证写在同一个 Validator 中,然后用 actionKey 做一个统一的分发,不需要为每一个 action 写 Validator
再退一步,你可以利用 Validator 或 Interceptor 加载外部用于验证的配置文件,这就回退到了 SSH 时代
此外,假如是 GET 或者请求中的字段很少,直接在 action 中做个简单的判断 render 到特定的地方就好,不需要创建Validator
jfinal 的 Validator 有还有很多考虑,例如 API 引导式验证,你在敲入 validateString(...) 这类代码时如果出现手误 eclipse 会提示你,比 SSH 时代用 xml 配置验证要舒服很多,其它一些考虑在此就不赘述了