开发者社区> 问答> 正文

jFinal表单上传文件时,文本域校验问题:报错

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

如图:表单里有文件上传,后台保存方式上的注解无效@Before(ProductValidator.class),有解决办法吗?因为只有getFile();方法后才能获取表单的值,因此直接跳过验证了。

@Before(ProductValidator.class)
public void save() {
UploadFile uploadFile = getFile();
String realPic = null;
if (StringUtil.isNotEmpty(uploadFile)) {
String realPath = getRequest().getServletContext().getRealPath(CommonFilesUpload.uploadImagePath);
realPic = CommonFilesUpload
.uploadFile(uploadFile.getFile(), uploadFile.getFileName(), null, true, realPath);
}
Product product = getModel(Product.class);
product.set("realPic", realPic);
product.set("ts", new Date());
product.set("enabled", EmEnabled.YES.intValue());
product.save();
}

展开
收起
kun坤 2020-06-14 07:54:55 510 0
1 条回答
写回答
取消 提交回答
  •     在 ProductValidator.validate(...) 方法中的第一行代码处添加一行代码: getFile() 即可打完收工。另外,无论有没有添加这行代码 ProductValidator 都不会被跳过去,调试一下便知######回复 @JFinal : 嗯,介绍给好几个朋友,他们也开始尝试使用了######回复 @yangjian1004 : 多多支持 jfinal 发展啊,从介绍给有需要有同事、同学们用用######回复 @JFinal : 嗯,非常感谢这么详尽的回复,也很开心能给你做这么多交流~######回复 @yangjian1004 : 传统方式也一样要改很多地方,并且要改 xml配置文件,即便代码可以重构来改,但xml需要手工来改。而 jfinal 下利用查找替换改很方便,替换前先预览能保障改对。况且改完后再利用 svn或git同步对比查看一下改的地什么地方,也可以避免改错######回复 @JFinal : 嗯,我也很喜欢jFinal倡导的方式,只不过有个问题不好兼顾,也就是修改字段名称后需要改的地方比较多,因为在取值的时候是直接使用数据库字段,想只改一个地方

    2020-06-14 07:55:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载