2016-12-12 14:34
@似水流言1 不使用jfinal 的集成启动方式,更加没有关系,不需要理会前面我说的参数问题,只需要让 PathKit.getWebRootPath() 这个方法返回正确的路径就好
如果确实没有办法做到,可以在 YourJFinalConfig 的 configConstant(Constants me) 中通过 PathKit.setWebRootPath(...) 手动强制指定,但是这个虽然是解决了眼前的问题,但你的整个 web 项目所依赖的路径可能还是存在别的问题
2016-12-12 14:22
@似水流言1 这个已经被无数次证实过的,另外启动的时候,如果是 maven 项目的目录结构,注意四个启动参数是:src/main/webapp 80 / 5
2016-12-12 14:14
@IvyHelen 不需要那么麻烦,只需要 public class MyRender extends CaptchaRender 然后覆盖掉其中的相关方法,用的时候这样用:render(new MyRender()) 即可
有功能需求尽量用扩展的方式,有助于未来升级,修改源码的方式只有在没有扩展办法的时候用一用
2016-12-11 11:55
创建一个public class MyDialect exnteds MysqlDialect 覆盖掉其中的 replaceOrderBy 方法,在方法体中直接放一行代码 return sql ,然后通过 arp.setDialect(new MyDialect()) 使用自己扩展的方言取而代之即可
原因是分页方法会生成一个查询分页总记录的 sql,为了提升性这个 sql 会利用正则将 order by 子句去掉,因为查询总记录与 order by 子句无关,而 order by 语句可以是极其复杂的,目前的正则无法完全覆盖
jfinal 2.3 已彻底解决此问题
2016-12-10 10:16
@fangjunai 如果要可写,那要考虑的事情就多多了,jfinal 会为了保持极简性而权衡不去实现一些用得比较少的功能,这部分功能留给大家自由发挥