JFinal validator校验

烟火里的尘埃丶 发布于 2015/06/01 22:05
阅读 604
收藏 0

@JFinal 你好,想跟你请教个问题:我想进行文件上传,上传图片时,要求输入图片的标题,可是在validator中无法取得“title”的值,想请教您一下是怎么回事?谢谢

加载中
1
蓝水晶飞机
蓝水晶飞机

那就不要validator这一个拦截器层,直接在你的Controller或者Service层中去编码实现。

接口形式的调用:如果缺少某些参数,则throw new 你的 BadRequestException或者直接renderError(400)

页面调用:方法很多了,把错误消息通过request带到视图上面显示。

validator 无法取得title的值的原因是:必须要调用getFile()系列方法解析才能调用getPara系列方法。这是JFinal中的约定。

当然,你还是可以用你的validator。

PS:个人感觉validator又分一层分层这么多不好调试是真的。因为还依赖了controller。

烟火里的尘埃丶
烟火里的尘埃丶
感谢你给出这么详细的解答,我明白是怎么回事了,我很赞同你“直接在controller层验证”的说法,这样确实简单不少,谢谢!
0
JFinal
JFinal
在 validator 方法中的第一行先调用一次  getFile() 即可打完收工,这个在 jfinal 手册有详细的说明
frankbak
frankbak
回复 @JFinal : 波总 威武~
JFinal
JFinal
回复 @frankbak : 方法一是可以在真正提交之前用ajax来校验,二是可以在validate失败后删掉上传的文件
JFinal
JFinal
回复 @frankbak : 如果你拿到了UploadFile那调用一下getFile().delete();就删除掉了。如果是删除系统中其它文件,直接FileKit.delete(file) 即可
frankbak
frankbak
@JFinal 请问 renderFile("xxx");可以下载文件,删除文件是什么方法?
frankbak
frankbak
@JFinal 波总 您好 ,如果在 validator 第一行先调用getFile() ,验证没有通过的情况下 文件还是已经上传上来了,有什么办法 解决这个问题
下一页
返回顶部
顶部