`
ezzze
  • 浏览: 42922 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

valang的小体会

阅读更多
最近的项目用到了valang,而且还是强制所有domain的验证都要用valang,简单业务逻辑也要...
所以为了吃饭,还是稍微看了下valang的源码,留下一些基本应用以备后用。

基本应用1: valang custom function

这个自定义function貌似很自由,其实很不爽。看我的例子。
友情提示:例子纯手写,没上IDE check

主要要写的是两个地方,一个是初始化用的构造函数,可以随spring的init一起init,也可配置lazy-inti稍后初始化,例如
public DaysValidateFucntion(Function[] args,int line,int colume){
     super(......);
     definedNumberOfArguments(Number);//看函数名就很明显了
}

protected Object doGetResult(Object target)
                      throws Exception{
 //这里throw的errorCode 是你待会再spring里面的定义的
    String days = (String)getArguments()[0].getResult(target);
    String days2= (String)getArguments()[1].getResult(target);
   // 接下来是你的业务

}


spring中的配置,你要定义成全局的话,可以配置functionDefinition
  <bean class="org.springmodules.validation.valang.functions.FunctionDefinition"
          p:name="validDay"
          p:className="DaysValidateFucntion的位置"/>


然后你就可以在你的bean里面直接用了,当然你要觉得FunctionDefinition这个不爽,你可以用FunctionWrapper,这个类好像是0.91后才有的,反正我们现在用的是0.8,米有.......


 <bean id="dayValidator" class="org.springmodules.validation.valang.ValangValidator">
<property name="valang"><value><![CDATA[
              {elements:validDay(?,?) : errorCode}
            ]]<</value>
        </property>
</bean>



基本应用2 :custom validator

这个主要继承valangValidator,这个感觉比function好用多了,也比较简单,error也比较好自己包装.....

到此就打坐收工.......
主要的不爽在于:

1.业务多了,那xml文件就很难维护了,而且一堆的自定义函数,和自已定义validator,还不好抽出公用的validator......

2.其实就是service上看的清爽了,其他没见有啥效果。

3.维护不便.....



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics