2016-10-05 17:47

首先,这个特性叫热加载不叫热部署,仅用于开发阶段,java 做为静态语言,不建议玩热部署。其次 jfinal 的热加载是通过监视项目类路径 classes 下是否有文件发生变化再 restart 一下 webapp 来实现的

所以,修改配置文件需要导致 classes 下的文件发生改变才能触发热加载,否则,热加载就不会起作用

2016-10-04 20:57

在 "/login" 这个 actionKey 进入到的 action 中通过如下代码做个处理即可:
if (getRequest().getMethod().equals("GET")) {
跳到登录页面
} else {
跳到登录验证方法
}

当然,还可以通过拦截器实现,通过 inv.getController().getRequest().getMethod() 以后的处理逻辑与上面的相似

2016-10-03 22:46

以前想过添加,一直没有合适的名字,因为与 cache 相关的方法名有: findByCache、paginateByCache,所以缓存有关的都是在原有的方法名上添加 ByCache。进而可以得出 findById 的带 cache 的方法应该是 findByIdByCache 貌似不太好,而且 findByIdCache 也不太好

所以,这个方法就一直没有添加,而是建议开发者用一下:findFirstByCache 来顶一顶, findByIdFromCache(id) 这个设计与前面的 findByCache、paginateByCache 不成系列,所以没引入

2016-09-30 20:23

@happyboy 这个不同的数据库要做出不同的处理,先处理 mysql,判断有没有 limit ,有则不处理,无则在末尾添加 limit 1。当然,如果出了问题,用户可以通过扩展 MysqlDialect 来改变行为

2016-09-30 19:44

这个有很多 jfinal 用户都找我要过,现在终于有了,超赞的分享

2016-09-30 17:55

分享点代码出来哈

2016-09-30 14:37

@happyboy 对于 nginx 来说 WEB-INF/web.xml 以及 WEB-INF/classes 下的东东全都是静态资源,只要你没设置过滤

2016-09-30 14:36

@happyboy 上万条的时候会分页显示

2016-09-30 14:35

@happyboy 在 model.findFirst 的 API 文档中有相关说明,此外 jfinal 2.3 会考虑自动化添加 limit 1

2016-09-30 11:01

@happyboy 没想过这个是有意为之的么 ^_^

2016-09-30 11:00

@happyboy 第三种情况是使用了 nginx,有一配置是 root /var/www/myproj,然后就可以通过 WEB-INF/web.xml 访问到了

2016-09-29 23:12

@sphsyv 编辑器的工具条固定置顶已配置好,需要按 ctrl + F5 强制刷新缓存才能生效,有问题多反馈,感谢支持

2016-09-29 22:02

有很多办法,介绍几种最简单的办法:
1:生产环境用 nginx 直接屏蔽对某些目录或对某些后缀文件的访问
2:用一下 jfinal 提供的 UrlSkipHandler 过滤掉所有对 ftl 的请求
3:将模板文件放在 WEB-INF 下面,此方法如果生产环境用到 nginx ,注意也要屏蔽,否则可以直绕过 tomcat、jetty 直接访问到 WEB-INF 目录下的所有资源
通常用第一种方式即可

2016-09-29 18:33

@Dreamlu 考虑这样弄,暂时懒得动