关于velocity的ReferenceInsertionEventHandler

阅读更多
在做一个项目的时候发现一个问题就是要求输出的数值保留2位小数点。开始使用orcale的round(xxx.2)来处理取出的数据。但是在完成后发现取出的数据经过二次运算后数值就和真实的不一样了,但是木已成舟。在老大的指点下,使用了ReferenceInsertionEventHandler接口。 ReferenceInsertionEventHandler可以在输出到vm文件前修改参数的内容。 public Object referenceInsert(String arg0, Object arg1);是要实现的接口方法,arg0是指的参数的变量名,arg1是该变量的值。比如vm模板上写有$a.b,值是1.12,那么在渲染模板的$a.b的时候会以 arg0="$a.b",arg1=1.2参数调用该方法。这样只要在该方法实现中写上你想要的业务逻辑就OK了。 问题解决了,配置文件加上eventhandler.referenceinsertion.class=cn.gov.zftec.kfq.web.velocity.DoubleReferenceInsertionEventHandler。一切OK。

你可能感兴趣的:(velocity,Web)