2016-11-07 17:49

up.getOriginalFileName() 是拿到上传文件原始文件名,一般没什么用

2016-11-07 17:49

补充一点,通过 getFile() 得到 UploadFile 这个对象以后,如果文件名重复,可以通过 uf.getFileName() 得到 jfinal 自动生成的新文件名,拿到这个文件名可以存数据库,便于读取

2016-11-07 17:47

没碰到过这种问题,建议多调试一下,记得解决以后回来再分享一下

2016-11-07 17:45

如果是不希望文件名重复,可以不必理会,因为 jfinal 会在文件名重复的时候自动去修改文件名,保障新文件不会覆盖掉旧文件

如果是希望更自由的改文件名,目前可以使用的方式除了 uploadFile.getFile().renameTo(...) 以外,还可以通过使用 OreillyCos.setFileRenamePolicy(...) 注入一个重命名实现类即可

2016-11-07 17:29

dp 与 arp 都未调用 start() 方法,必然是数据源也没启动、映射也没有被执行,这个在 jfinal 手册中有说明,当 active record plugin 用于非 web 项目时,需要手动调用 start() 方法

用于 web 项目时,该 start() 方法是 jfinal 帮你调用的

2016-11-07 17:27

在 YourJFinalConfig 中添加一个 public void afterJFinalStart() ,在这个方法里面添加上需要项目启动完毕后需要被执行的代码即可打完收工,jfinal 手册中有说明

2016-11-07 12:22

异常信息中全程没有 "jfinal" 出现,是怎么启动的

2016-11-07 11:03

一般是对库、表、字段直接指定字符集,然后在 jdbcUrl 中也可以通过参数指定一次

2016-11-07 11:02

使用一下 Db.update(...) 试试

2016-11-07 11:00

感谢反馈,已做备忘,jfinal 2.3 会考虑这个地方返回什么最恰当

2016-11-07 09:52

注意,上述操作都在 handleError 中做的

2016-11-07 09:47

其实,只要在 handleError 中直接 renderJson() 就可以输出 json 了,还可以通过 getAttrNames() 得到所有错误的列表的 key 值,然后迭代得到所有错误信息,然后自由封装再 renderJson 会更加灵活

2016-11-07 09:37

设置一下开发模式即可: me.setDevMode(true)

因为 jfinal 下的 freemarker 会默认对 ftl 文件缓存一个小时,当然你还可以直接对此设置进行配置,从而不必设置开发模式,设置为 0 就是不缓存:
me.setFreeMarkerTemplateUpdateDelay(0)

2016-11-05 17:42

数据到达后端以后,用 java 自带的 BASE64Decoder 将 base64 编码的数据转成图片原始数据,然后写入文件即可

2016-11-05 17:39

搜索功能必然会有,不要着急