2016-10-12 16:03

@kojz redis 应该可以设置,找下相关文档

2016-10-12 15:34

样式需再美观一下,例如字体、行高之类的

2016-10-12 15:34

解决方法不需要多说了吧,简单说就是自己处理了,就不要再往下转手了

2016-10-12 15:33

在 Handler 中首先,你要决定是不是要将这个请求传递下去,注意以下几点:
1:当你不去调用 next.handle(...) 时,该请求不会传递给 jfinal 的 ActionHandler
2:当你设置 isHandle[0] = true 后,该请求不会传递给 tomcat、jetty
3:即便是向下传递下去了,接手的组件也会根据情况决定是否自己要处理,例如 ActionHandler 只处理动态请求,对于 /img/abc.jpg 这样的图片请求不会处理,会再转手给 tomcat、jetty
4:这一路下来,不能多次调用 response.getWriter() 并将其关闭

所以,问题原因就很显然了,你自己的代码中有一个 req.getDispatcher(...).forward(...) 已经操作过 writer 关闭,但后续仍然让这个请求继续转手给了 jfinal 或者 jetty/tomcat,而后面接手的组件以为自己还需要处理这个请求,造成重复处理,出异常

2016-10-12 15:28

@kojz 哪怕你是一个 new RedisPlugin(...) 也是有连接池,在连接池中有存在多个连接,否则多线程并发的时候会等待资源

2016-10-12 11:30

@白银骑士 renderJson 是一定会向客户端发送数据的,收不到的原因通常不是服务端的问题,例如是不是网络不通,是不是客户端程序有问题等等

总之不用在服务端找原因,因为 renderJson(object) 这个方法用了五年了,极度可靠

2016-10-12 11:28

jfinal 的 paginate 没有支持这样复合的 order by 语句,解决办法极其简单,假定你使用的是 mysql 数据库:
public class MyDialect extends MySqlDialect {
public String replaceOrderBy(String sql) {
return sql;
}
}
上面的自定义 MyDialect 中覆盖掉了父类的 replaceOrderBy 语句,直接 return sql即可

然后再替换掉方言: arp.setDialect(new MyDialect()),jfinal 2.3 将会改进这里,可支持任意复杂的 order by

2016-10-12 11:24

在手机端查看一下收到的是什么数据,输出在控制台一下,这种情况应该是手机端的问题

2016-10-12 11:23

@kojz redis 的多个实例是指,你有多台服务器,每台服务器上安装一个 redis 服务,或者一台服务器上跑多个 reids 进程。前者是通过调整连接的 host 地址来连接多实例,后者则是通过不同的 port 连接,使用的时候,相当于 new RedisPlugin(...) 传入不同的 host 或不同的 port

另外一种在同一个 reids 实例中使用多个 RedisPlugin 的方式是,在创建 RedisPlugin 时, host 与 port 相同,但 int database 不同,就相当于使用同一个 redis 服务的不同 database

最后记住最重要一点,无论你使用上述哪种方式,多个 new RedisPlugin(...) 出来的对象对应着多个 cacheName,在使用的时候通过 Redis.use(cacheName) 进行指定

2016-10-12 10:32

@xRhbN jfinal 社区还没正式公布与推广,就连 jfinal 上万人的十来个 QQ 群都未提起过社区这回事,为的就是观测自发流量增长,如果自发流量都在增长,那就可以正式起飞了

2016-10-12 10:30

大规模系统会使用多个 redis 实例或同一个 redis 中的不同 db 来做不同模块的缓存,例如用户登录模块使用一个 redis 库,文章模块一个库

那么使用不同的 cacheName 就可以对应到不同的 redis 库,或者不同的 redis 实例,在使用的时候通过 Redis.use(cacheName) 就可以指定用的是哪个库

至于你说的用户的 key 与菜单 key 会重复的问题,显示需要让 key 不重复,或者 key 可以重复但存放的一级 key 不相同,redis 支持丰富的类型,你可以让用户与菜单分别放在两个不同的 map 中,在这两上 map 中使用相同的 key 就不会有问题

粗暴点的办法是将用户与菜单的 key 前面添加一个前缀,如: user_123, menu_123

当然,既然使用了 redis,一般都会将不同类型的数据放在不同的 map 中,建议学习一下 redis 的具体用法

2016-10-11 21:34

@nbjgl 前面只是公布了一点点社区源代码,逐步会有更有价值的代码分享出来

2016-10-11 21:33

@nbjgl jfinal 新社区不是闹着玩的,必将打造成极其专注的极速开发社区,提升开发效率、降低开发成本、提升开发体验

2016-10-11 21:25

@cnzzr 可以将这部分代码追加到贴子中,追加部分的前面说明一下是解决后的追加代码,因为回复功能不支持语法高亮显示,追加完后,可以再评论 @ 一下有需要的人就可以了,感谢支持

2016-10-11 21:21

我用的 jsoup 1.9.2,注意下版本