@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();
}
在 ProductValidator.validate(...) 方法中的第一行代码处添加一行代码: getFile() 即可打完收工。另外,无论有没有添加这行代码 ProductValidator 都不会被跳过去,调试一下便知######回复 @JFinal : 嗯,介绍给好几个朋友,他们也开始尝试使用了######回复 @yangjian1004 : 多多支持 jfinal 发展啊,从介绍给有需要有同事、同学们用用######回复 @JFinal : 嗯,非常感谢这么详尽的回复,也很开心能给你做这么多交流~######回复 @yangjian1004 : 传统方式也一样要改很多地方,并且要改 xml配置文件,即便代码可以重构来改,但xml需要手工来改。而 jfinal 下利用查找替换改很方便,替换前先预览能保障改对。况且改完后再利用 svn或git同步对比查看一下改的地什么地方,也可以避免改错######回复 @JFinal : 嗯,我也很喜欢jFinal倡导的方式,只不过有个问题不好兼顾,也就是修改字段名称后需要改的地方比较多,因为在取值的时候是直接使用数据库字段,想只改一个地方
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。