2017-07-28 15:58

jfinal 魔板引擎被设计为独立任何环境运作的,所以不可能与 http 有关的概念耦合,想要在模板中获取 GET、POST 可以通过拦截器将值传过去

话说回来在 view 层去感知 GET、POST 这种场景是极少的,通常是在 action 层感知

2017-07-28 15:56

ActiveRecordPlugin 未正确启动而已,注意如果是独立用 arp,则必须手动 arp.start() 一次,具体看一下手册有关 ActiveRecordPlugin 用于任意环境的那一章节

2017-07-28 15:53

@Willson_L 不是 bug,设置一下: ModelRecordElResolver.setResolveBeanAsModel(true) 即可

2017-07-28 15:51

@ts_wh cron4j plugin 不支持秒,最小只支持到分,具体看一下 jfinal 手册

2017-07-28 15:50

@JFinal007 Content-disposition 这个 header 当然是加过了的,所以我才可以说与 jfinal 无关嘛

看一下jfinal 原码:com.jfinal.render.FileRender.java 第 104 行

2017-07-28 15:48

int[] 中存放的是 batch 方法每个数据操作所影响的数据记录的条数,这个值仅仅是返回的 JDBC 的 executeBatch() 方法的返回值, jfinal 未做任何干预

2017-07-28 15:45

@tuzqone 3.1 版本的 #include 指令仅仅是添加新的特特,原先只支持一个参数,3.1 支持多个参数,所以升级完全不影响

#if 指令没有变过,如果之前用 1.9,改动也很小,主要就是一个 me.setBaseViewPath(...) 从 configConstant 中挪到了 configRoute 中去了,详细的升级文档见 jfinal 手册第一章

2017-07-28 14:43

#()、#if、#define 这些都是 jfinal template engine 的指令,那么只有在针对某个模板文件使用 render(...) 的时候,才能去解析这些指令

因此,scr="top.html" 这类方式指向的 html 是根本没有通过 template engine 解析过的,所以里面的指令不会得到处理

解决办法是让 src 指向一个 action,然后这个 action 中进行 render("top.html"),或者通过 #include("top.html") 与 #render("top.html") 进行渲染

使用 jfinal template engine 可以完全代替 JSP,并且学习成本十分之低,使用十分之方便

2017-07-27 21:38

使用 jfinal 3.1 会自动处理好文件下载的字符集

2017-07-27 21:33

@tuzqone 使用 jfinal 3.1 去支持中文文件名,前提是你的中文文件名在 linux 系统下本身不是乱码,如果本身就是乱码的,那在程序中也会是乱的

2017-07-27 21:19

@linuxea 挺有钻研精神,十分看好你

2017-07-27 20:58

这个是浏览器的设置问题,你换个浏览器就知道了。 在 chrom 之下可能会直接在浏览器中直接打开 pdf,在网上搜索一下如何设置就好,与 jfinal 社区代码毫无关系

2017-07-27 20:56

@linuxea 每个 ActiveRecordPlugin 对象都拥有独立的 Cache 依赖配置,所以,如果你的需求是每个数据源拥有独立的 cache,这个天然就实现了。

如果你是希望每个数据源拥有多个不同的 cache,这个需要你自己写代码去控制

2017-07-27 20:53

具体到你的场景,可以将 controller1 controller2 controller3 这三个块分别用一个简单的模板承载,例如:temp1.htm、temp2.html、temp3.html,然后在这三个模板文件中可以定义同名的模板函数,例如都定义一个 #define main() 出来

2017-07-27 20:51

再回到你的问题,模板文件只有一个入口文件,也就是 render(...) 方法中的参数所指向的那个模板文件,而一个模板文件没有太多必要搞出方法重载这类功能。所以 jfinal 模板引擎并不支持函数同名

解决方法可以是利用 #render 指令,为其传入动态的模板参数,实现模板的组合,这些个模板中定义的函数可以是同名的, #render 指令所处理的模板文件中的
#define xxx() 函数名是可以重名的,她们拥有各自的作用域