2019-06-19 17:41

jfinal enjoy 引擎功能极其强大,提供了各种扩展通道,稍微了解一点点代码,解决各类需求极其便利,用不着改代码,用扩展来实现最优雅

2019-06-19 17:39

当然,你也可以不用继承 FieldGetters.GetterMethodFieldGetter,而是继承 FieldGetter,稍多一点代码,不仅要实现 public FieldGetter takeOver(Class targetClass, String fieldName) 方法

还要实现 public Object get(Object target, String fieldName) 方法

2019-06-19 17:38

这个问题最简单的办法就是扩展 FieldGetter ,做一个 MyFieldGetter,大至如下:
public class MyFieldGetter extends FieldGetters.GetterMethodFieldGetter {
...
}

然后在里头填上你自己改进过的 takeOver 方法,最后配置一下:
Engine.addFieldGetter(1, new MyFieldGetter());

注意添加的时候,第一个参数很重要,这个关系到优先级,你的 MyFieldGetter 优先级要高于 GetterMethodFieldGetter,对于 jfinal 4.2 来说传入 1 即可,因为优先级最高的 0 为:RealFieldGetter

你的这个 MyFieldGetter 要配置在 RealFieldGetter 之后最合适,相关源码在 : com.jfinal.template.expr.ast.FieldGetters.java 中,建议看一看

2019-06-19 17:27

@124653847atqq.com 下一版本我打算添加一个配置,让你可以配置这个 server name,想取什么名都可以

2019-06-19 17:25

实在不知道怎么搞定,下载首页的 jfinal demo for maven,然后也放一个模板到 WEB-INF/admin/common 里头去,然后使用:
#include("/WEB-INF/admin/common/headerLogin.html")

你会发现,天然就是支持的

2019-06-19 17:24

看是你什么项目了,如果是 web 项目,那么默认的模板根路径就是 src/main/webapp,那么你现在的用法就是正确的

我估计你是有别的配置将这个问题复杂化了,下载首页的 jfinal demo for maven,看一眼就懂了

2019-06-19 17:20

强烈建议升级,代码更少、性能更高、功能更强大,升级起来也很容易

2019-06-19 17:20

一定要参考这位同学的分享:
http://www.jfinal.com/share/1682

我在分享下方也回复了更好的升级办法

2019-06-19 17:12

Oracle 数据库要事先配置方言:
arp.setDialect(new OracleDialect());

生成器同样也要配置方言:
generator.setDialect(new OracleDialect());

2019-06-19 17:11

部署到 tomcat 出现类找不到的问题相对重要,正准备要发布新版本

这个问题是由于 tomcat 丢失了 CLASSPATH,而 jfinal 官方已抛弃 tomcat 很长时间,所以 4.2 版本没有发现这个问题。 丢失 CLASSPATH 这个问题很难事先预料到,别的 java web 容器没有这个问题

2019-06-19 17:06

jfinal 迭代八年,一直非常重视兼容性,在尽可能保障兼容的前提下,十分重要的必须改变大多有两种:
1:类改名、方法改名
2:删除一些类、方法,但同时提供更简洁的替代方案

一般来说,如果你的应用没有深度扩展过 jfinal , 从老版本升到新版本多数工作分三步:
1:依赖改为最新版本
2:根据 eclipse、IDEA 的错误提示,改改类名、方法名
3:剩下的问题查看社区的升级文档:https://www.jfinal.com/doc/14-1

建议在升级的时候首先关注一下社区的升级文档,做到心中有数

感谢你的分享

2019-06-19 11:15

生成器也要设置好方言:
generator.setDialect(new OracleDialect());

2019-06-18 17:32

这种基础功能必然是支持的:
https://www.jfinal.com/doc/6-4

2019-06-18 11:23

文档中详细说明过这个问题的原由:
https://www.jfinal.com/doc/5-6

2019-06-17 17:19

信息量严重不足,这个比猜谜要难多了