2020-04-07 11:24

大概率原因是:某个线程的 PropKit.get(...) 动作在 PropKit.use(...) 之前被调用了

这里的关键是:PropKit.get(...) 一定要在 PropKit.use(...) 被调用过至少一次以后才能使用

2020-04-06 22:10

@tctc4869 扩展这两个组件的实例代码也是现成的:
https://gitee.com/jfinal/jfinal/tree/master/src/main/java/com/jfinal/plugin/activerecord/builder

有两个 ModelBuilder、RecordBuilder 扩展,参考着写即可,假定你扩展出来的叫 MyModelBuilder.java、MyRecordBuilder.java 配置方法如下:
ActiveRecordPlugin arp = new ActiveRecordPlugin(...);
Dialect dialect = new MySqlDialect();

// 下面两行是关键
dialect.setModelBuilder(new MyModelBuilder());
dialect.setRecordBuilder(new MyRecordBuilder());

arp.setDialect(dialect);
me.add(arp);

2020-04-06 16:57

扩展 ModelBuilder、RecordBuilder 就可以了,扩展完以后,通过 Dialect.setModelBuilder/setRecordBulder 方法就可以切换过去了

2020-04-06 12:37

使用百分号 s,例如 log.info("收到来自 %s 的 ws 握手包 %s", "aaa", "bbb");

当然,你也可以使用 slf4j 的用法,但得配置一下:
me.setToSlf4jLogFactory();

2020-04-06 12:35

@杜福忠 字符 ` 在 js 中支持字符串换行?

2020-04-05 21:20

@nmsl 与端口有关的可能性不大,可能是你动了项目什么地方,可能是 Default Output Folder 配置不对:
https://jfinal.com/doc/1-8

2020-04-05 19:42

很可能是 web.xml 没被加载,设置断点看你的 config 类被调用没

2020-04-05 16:41

这种设计是现代模板引擎必须要避免掉的,所以 JSP 后来添加了 JSTL

在 html 中允许写 java 代码是十分糟糕的事情,所以在 JSP 后续的知名模板引擎如 freemarker、velocity 根本不支持这种功能

你可以通过 jfinal enjoy 的 engine.addSharedObject(...)、 addSharedMethod(...) 功能将实现在 java 中的代码功能添加进来,在 html 中调用即可

2020-04-04 22:18

https://jfinal.com/share/1909
https://jfinal.com/share/492

2020-04-03 17:08

jfinal 中的 HttpKit 是一个发起 http 请求的客户端

jetty、tomcat 是符合 java web 规范,也就是符合 java servlet 规范的 web 容器

此外,前者是 http 客户端,后者相当于 http 服务端 + java web 容器

两者相差十万八千里的平方,不要拿到一起来讨论

2020-04-03 17:06

@onizukayao 这个问题估计是你的理解有误,本地与生产环境本质上是一样的

你需要单步调试找到原因

单步调试有两种方法,任选下面其中一种:
1:直接远程调试生产环境的项目:
https://jfinal.com/feedback/5106
https://jfinal.com/share/1528

2:项目部团到本地,利用某种机制让微信服务器可以与本地通信,例如可利用反向隧道:
https://my.oschina.net/jfinal/blog/336861

2020-04-03 17:03

@方涛 可以将老版本的 Duang.java 加到项目中直接使用

我记得 Duang.java 这个类仍然保留了,只是删除了一些很不常用的方法,你再仔细看看

2020-04-03 10:54

使用 Aop.get(...) 代替

或者使用 @Inject 注入也可以,注意看文档

2020-04-03 10:54

如果确实不想 render,添加一个 renderNull() 在里头就不会出现这个异常了