2018-05-04 14:48

不要在 ExrRender 的构造方法中 engine=new Engine(),虽然 Engine 对象是轻量级的,但你这样做还是太浪费了

在 ExtRender 中弄个 static Engien engine 属性,只初始化一次即可

想使用另一个地方的 layout.html 并用 addSharedFunction 方法添加进去可以使用下面的方法:
engine.addSharedFunction(new FileSource(null, "D:/任意路径/layout.html"));

2018-05-04 11:46

总之,在同一个项目中,可以同时存在多个 Engine 对象,这些不同的 Engine 对象可以分别配置,分别用于不同的用途

在 jfinal 中做扩展极其方便

2018-05-04 11:45

如果你有一部分模板是放在项目中,一部分是放在项目之外,还可以自己弄个 BaseController,里面加个 renderExt(String) 方法,然后建一个 ExtRender ,大致如下:

public class ExtRender extends Render {
static final Engine engine = new Engine().setDevMode(true).setBaseTemplatePath("D:/data");

public void render() {
这里面基本照抄 TemlateRender.java 源代码,只是将 engine 改用你上面自己 new 出来的
}
}

最后在 BaseController 中的 renderExt 这样用:
public void renderExt(String view) {
render(new ExtRender(view));
}

2018-05-04 11:41

必然可以,在 configEngine(Engine me) 中配置一下:
me.setBaseTemplatePath("d:/data");

2018-05-04 11:21

@年轻似水 停留在哪个页面,是不是停留在当前页页这个完全取决于你如何写这个代码

jfinal 仅仅是提供 web 开发的功能而已,一般做那种删除后停留在当前页的都用的 ajax 请求,根本不涉及页面跳转这件事,页面根本没跳过,一直在当前页

2018-05-04 11:18

这个只是 IDEA 的提示信息而已,你实际请求几次就会发现这个提示会消失

2018-05-04 11:16

配置方法: ActiveRecordPlugin.setTransactionLevel(...)

mysql 默认配置的 TRANSACTION_REPEATABLE_READ,oracle 默配置的 TRANSACTION_READ_UNCOMMITTED

在开启事务的时候还可以临时改变这个级别,见 Db.tx(...) 方法的重载方法

2018-05-04 11:09

这个是纯字符集的问题,设置一下 centos 的 local 以及字符集即可,修改的办法按照下面的步骤:

1: vim /etc/sysconfig/i18n
将 LANG变量修改为:
LANG="zh_CN.UTF-8"

2:vim /etc/profile
添加两个变量(如果有了则修改)
export LC_ALL="zh_CN.UTF-8"
export LANG="zh_CN.UTF-8"

3:source /etc/sysconfig/i18n
source /etc/profile

在上传部署的静态资源时注意将上传工具的字符集配置成 utf-8,否则上传上去就是乱码

如果是打包上传,注意打包的时候字符集也要是 utf-8,否则解压出来文件名直接就是乱码,因此你打包用的 eclipse IDEA 也要先设置为 utf-8

静态资源文件名不建议用中文名

最后,部署在 tomcat 下一定要看下我写的博客:
https://my.oschina.net/jfinal

2018-05-03 22:22

@年轻似水 哪些字符是模板静态内容,哪些是指令中的表达式/变量一定要分清楚

例如上面的 href="/blog/delete/#(x.id)?pageNum="+blogPage.pageNumber 中的最后一部分内容 "+ blogPage.pageNumber" 就是一个纯字符串而已,与取变量毫无关系,仔细看一下文档

简单说就是,只有在指令扩号中的才是表达式/变量,其它都是纯字符

大致要改成这样:
href="/blog/delete/#(x.id)?pageNum=#(blogPage.pageNumber)

2018-05-03 22:18

class not found 异常肯定是与 jfinal 无关的,如果是 maven 项目,将所有文件删除,只留 src 目录与 pom.xml ,重新导入生成一次项目骨架即可

如果不是 maven 项目,也建议重建项目,纯配置问题

2018-05-03 22:16

@1070202601 pom.xml 中的 dependency 配置下的 scope

2018-05-03 22:15

直接这样写就可以了:
#if(data)

多看一下文档

2018-05-03 22:14

jfinal 一直以来没动过这部分代码,氧氣 Eclipse 有问题,目前原因不明,这个问题会在 jfinal 3.5 时统一解决一下