Validator很强大,但很封闭

我丁丁 发布于 2013/04/10 09:38
阅读 380
收藏 0

@JFinal 你好,想跟你请教个问题:

事情是这样的,关于验证错误的信息,我不想render在原输入页面显示,而是在DWZ的下拉提示中。

好吧,那我继承Validator,addError自由发挥,没问题。

但到intercept时,始终无法handleError,因为handle之前有个判断if (validator.invalid)

invalid为private,外层无法修改。

好吧,我再override intercept,但intercept为final!

最后我只能复制全部之后再.....................

加载中
0
JFinal
JFinal
不想render在原来的页面显示,而是在DWZ的下拉提示中,这个貌似只与前端有关,而JFinal 这一端,只需要在Validator 的 handleError 中 renderJson 即可
0
我丁丁

我量改变了输出错误的格式,不是setAttr后,放在request里,而是自己拼的字符串。

重写addError,这没问题,但重写后的addError不能改变invalid为true。intercept方法就无法render错误

矛盾就在这里,我既不能修改invalid的值,也不能重写intercept方法

JFinal
JFinal
既然调用了addError,就证明有错误发生了,所以invalid 必定为true。要满足你的需求也是可以的,不去使用addError,转而使用controller.setAttr(...)就可以
返回顶部
顶部