2016-09-05 13:34

renderJson("name", "好"); 即可,此外还有其它的 renderJson 方法,例如 rederJson(Object),renderJson(String[]),renderJson(),具体用法见 jfinal 手册,在首页有下载链接

2016-09-05 10:54

1:只有一个 tomcat
2:缓存用 ehcache
3:最高并发到过 900,访问仍然非常迅速
4:图片就简单存放于 webroot/upload 之下,图片大小控制在 200K 以内
5:重新部署大版本是整体覆盖,小版本是小范围覆盖
6:社区部分通用功能会抽取成独立项目开源出来

2016-09-03 21:10

我现在对大家有一个建议:果断删掉 model 中定义的那个 dao 对象,不要再这样用了

2016-09-03 21:09

当一个对象用了 static 修饰,变成了全局共享变量,就必须要注意线程安全问题,而 dao 中的查询方法获取到的数据全部是 new 出来的,所以是线程安全的。

由于一些 jfinal 用户还没有掌握基本的线程安全知识,所以 jfinal 官方在未来出的任何 demo 也好,开源项目也好,都会完全删除 Model 中的 dao 对象,让你没法再犯这个错误

2016-09-03 21:07

@java180 手册 5.3 中的例子,User.dao 后面紧跟的是一个查询方法,而不是 set、update、save 方法。原因是 dao 对象是 static 修饰过的,那么地方面使用 User.dao.save()、update()、set() 之类的方法时,都是共享的这一个 dao 对象,假如线程 A 往里面 set 一个值进去,线程 B 再 save() 或者 update()这样数据就乱套了,这个是最基本的 java 线程安全问题

2016-09-02 20:20

@不懂程序 换成 DruidPlugin,不要再使用 C3p0Plugin。此外,打印 DEBUG 级别的日志是配置问题,下载 jfinal demo ,直接且里面的 log4j.proerties 文件即可

2016-09-02 13:59

没有内置,我前面所说的:“_patinate.html 所使用的 css 文件“ 是指 jfinal demo 项目中的 WebRoot 目录下 css 子目录下的 manage.css 文件

2016-09-02 13:47

如果只改样式,只需要改下 _patinate.html 所使用的 css 文件

2016-09-02 13:34

通常这是前端的事,如果你是全栈开发者也可以自己做

2016-09-02 13:33

修改 _paginate.html 以及相关的 css 文件即可

2016-09-02 12:45

oracle 之下如果出现异常,建议设置不生成字典文件,由于没有测试环境 oracle 下的字典文件测试做得不够充分

2016-09-02 12:12

对于 model 来说,只要在 arp.addMapping(...) 一次性搞定,在使用过程中不再需要处理,而 Db.find/query 由于没有建立 table 的 meta 映射,所以,需要在使用过程中临时指定

2016-09-02 12:10

@java180 再补充一句:无论是 model 还是 Db,当主键名称为 "id" 时就不需要指定了,在没有指定 idName 时,jfinal 会使用默认的名称 "id",这个默认名称还可以在 Dialect 中可以自己指定

2016-09-02 11:54

@java180 其实我的第一个回复已经说过了,model 主键要使用 arp.addMapping(...) 的第二个参数指定 idName,Db 的相关方法需要临时指定 idName。
此外, dao 的 update() 绝对不可以去调用它,这个在手册中强调过,dao 是全局共享的,只能用于查询

2016-09-02 11:07

@java180 调试一下,看 update() 的时候,主键所对应的值是不是为 null? 没有值的时候才会报这个异常,你是不是在取值的时候没有取主键值?