2019-01-16 11:26
@JFinal从入门到放弃 单步调试跟踪一下,这类问题是无法通过猜测得到答案的,看现场的话分分钟就解决了
2019-01-15 18:34
异常提示已经很清楚,配置文件没有找到:D:\workspace\jfinal-share\out\artifacts\share\WEB-INF\classes\/quartz/quartz.properties
2019-01-15 12:19
@NGU-sunshine 仔细单步调试,这个问题没有什么技巧可言,只要细心就知道了
2019-01-15 12:04
context path 是一个可以变动的值,也可以是空字符串值 ""。具体是什么值取决于配置成 context path 为什么值,例如在 tomcat 中配置 server.xml 指定 context path还有一种情况是不需要配置,将项目放到 tomcat 的 webapps 下面,则项目的目录会自动成为 context path 值以上这些都是 jfinal 无法干预的,因为 jfinal 仅仅只是很机械化地去取这个值,而不能控制这个值是什么
2019-01-15 11:57
这种细节问题单步调试即可调试时看变量的 id ,如果 id 相同则证明是同一个对象这里所说的变量 id 是指 JVM 在创建对象的时候为其指定的一个值,与你的变量本身无关
2019-01-15 11:39
新版本的 Controller 中有一个 renderToString(...) 方法,应该可以简化你目前的需求,感谢分享
2019-01-15 11:37
现在的大部分 paginate 方法是支持 SqlPara 参数的,所以这个问题应该不存在,直接用上 SQL 动态模板就好如果确实存在不支持的地方,可以从 SQL 模板中拿到 SqlPara,然后再通过 sqlPara.getSql() 拿到 sql, 最后通过下面的方式将 sql 拆分成可用的两个分页的 sql :String[] sqls = PageSqlKit.parsePageSql(sql);其中的 sqls[0] 与 sqls[1] 可用于 paginate 的两个参数
2019-01-15 11:34
写个 main 方法用纯 JDBC 连一下试一试,或者用单步调试,看程序是在哪行代码卡住的
2019-01-15 11:31
model 内部有几个简单的带 cache 的查询方法,可以用一用加二级缓存会让复杂度提升很多,jfinal 对此很谨慎还有一个重要原因是,jfinal 在理念上并不认同在 model 层或者叫 dao 层使用二级缓存,jfinal 缓存的应用原则有:1:缓存尽可能在上层去做,例如在 controller 层之前使用拦截器2:缓存尽可能对开发是透明的,例如拦截器自动化搞定,不需要人为干预第一个原则可以最大程序提高性能,因为越是往上层离客户端越近,缓存的粒度越大。第二个原则减少耦合,有利于可读性和可维护性
2019-01-15 11:26
JBolt 让开发更快速,进一步节省用户时间,值得拥有,赞
2019-01-15 11:25
just do it
2019-01-15 11:24
Caused by: java.lang.OutOfMemoryError: Java heap space JVM 分配的内存被占满了, 找到那个耗内存的代码,改之即可
2019-01-14 22:43
@vimer 映射是一一对应的,不能动态变动,否则会有线程安全问题,但是可以实现你的需求先是选择一个最常用的实现类来进行映射,然后在需要打破映射的地方使用下面的两种方式:1:在 @Inject 中指定实现类@Inject(AaaBbbImpl.class)Aaa aaa;2:让承载类型为实现类@InjectAaaBbbImpl
2019-01-14 21:53
@mr_wangyan 没用过 lombok,不知道里头的细节在 jfinal 之下, model 可以用生成器自动化生成 getter、setter, 所以不建议用 lombok
2019-01-14 18:04
空指针是最容易解决的了,也没有什么好技巧,就是单步调试找到那个为 null 的对象,然后不要让它成为 null 即可