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 已彻底解决此问题