2017-05-24 22:39

jfinal 仅仅只是将 sql 与其参数扔给 JDBC,理论上来说只要 JDBC 很快,那么查询一定很快

2017-05-24 22:39

单步调试进入 paginate 方法,看哪一行代码明显慢了,即可立即找到原因

据推测是 sql 本来就慢了,你在控制台执行的 sql 很可能与 java 代码中的 sql 有很微妙的差别,例如:where 中使用的条件次序不同,造成没有用上索引

2017-05-24 22:35

生产环境 nginx 已然是标配,在 nginx 的配置文件中直接屏蔽对模板目录的访问即可

如果一定要自行屏蔽,可以使用 jfinal 的 Handler,代码大致如下:
public void handle(target , req, resp, isHandled) {
if (target.endsWith(".html")) {
HandlerKit.renderError404(req, resp, isHandled);
return;
}
next.handle(target, req, resp, isHandled);
}

2017-05-24 22:30

浏览器地址栏里直接请求的 "login.jsp" 文件,那么要确保 jetty 添加了对 jsp 支持的 jar 包,因为 jetty 是模块化的,不一定对 jsp 有支持

直接对 jsp 请求,已然绕开了 jfinal,所以这个问题本质上是与 jfinal 无关的

2017-05-24 22:28

上传文件的 File 对象,可以通过 UploadFile.getFile() 直接获取到,不需要再 new 一次 File

感谢分享

2017-05-24 22:26

weblogic 下使用 jfinal + velocity 的情况不多见,能否在搞定以后,分享一下这个问题的解决方案,我本地没有 weblogic 环境

2017-05-24 22:23

用一下 HttpKit.get(...) 与 HttpKit.post(...),如果你说的远程调用是 RPC,那么 jfinal 未提供这种支持,用一下第三方就好

2017-05-24 15:18

在首页可以下载 jfinal 3.1 all 这个 zip 文件,里面对所有包的使用都有说明

连接池可以换,而且可以直接传入 DataSource 给 ActiveRecordPlugin

2017-05-24 15:16

渲染可以理解为以模板文件 + 数据为基础,生成界面内容用于显示给用户,你可以简单理解为向客户端响应不同类型、不同格式的数据就好,例如:有可能是 html 格式、有可能是图片格式,有可能是 json 格式

freemarker、velocity 是流行很多年的模板引擎,jfinal 手册中提供了 jfinal template 的文档。

2017-05-24 12:23

在 jfinal 中使用任何第三方,本质上都不需要有个集成的动作,直接用就好。

很久没有用过 quartz 了,无法给到具体的建议,建议你直接拿着 quartz 官方文档直接用就行

2017-05-24 12:19

@IvyHelen 开发这个插件的时候,当时并不知道 password 与 database 都支持 null值,只能确定这两个参数可以不传递,站在 jfinal 的角度,如果某个参数可以不传递,最好还是认为 redis 内部是有默认值去处理,而如果 jfinal 允许 null 值,可能会覆盖掉 redis 内部的默认值

你可以当成是一种防御性编程习惯,刚刚已经将 RedisPlugin 中所有属性改为 protected 了,后续版本便于大家继承并扩展自己需要的构造方法

目前的情况下,建议通过建议继承 RedisPlugin 并 copy 一下 start() stop() 这两个方法中的代码来实现,再自建一个满足自己需求的构造方法

2017-05-24 12:06

采用下面的配置:
groupId:com.jfinal
artifactId:jetty-server
version:8.1.8
scope:IDEA 下设置为 compile,ecipse 下可以设置为 provided

采用 JFinal.start("src/main/webapp", 8080, "/") 这种方式启动时,是使用的 jfinal 整合的 jetty 来启动的,对于版本有要求,高版本的 jetty 连包名都改变了

2017-05-24 11:32

@LiJunv5 建议关注一下 jfinal 官方推出的模板引擎,在手册中有介绍,在首页可以下载 jfinal demo,里面有例子,感谢支持社区

2017-05-24 11:03

升级到 jfinal 3.1,里面有一个 paginateByFullSql(...) 方法可以使用,如果不想升级,可以参考 paginateBuFullSql(...) 方法在 YourModel 中添加这样一个方法

引发这个问题的原因是分页计算 totalRow 的 sql 是不能有 order by 子句的,而你的这个 sql 貌似需要这个 order by 才算正确,产生了冲突

2017-05-23 19:25

此外,站在 jfinal 的角度,从 table 反向生成 model 复杂度低、工作量小,稳定可靠