2019-07-18 15:34

#include 指令,如果参数仅仅是个文件名,会去 "当前文件所在的同级目录" 去找文件

如果以 "/" 打头,则去 web 的根目录去找文件

两个句点符可以向上跳一级目录,例如: "../file.template" 是去当前目录的上级目录去找文件

这个规则是很符合直觉的,也符合 linux、mac、windows 操作系统的目录规则

唯一要注意的地方是, web 的根目录的位置在哪里。默认情况下 web 的根目录在 src/main/webapp 下面。

你可以通过在 configEngine(Engine me) 方法中通过 me.setBaseTemplatePath(...) 来改变上述提到的 web 根目录, 强列建议使用默认值

2019-07-18 13:02

websocket 开发一定要参考文档:
https://www.jfinal.com/doc/1-4

2019-07-18 13:01

参考文档:
https://www.jfinal.com/doc/1-7
https://www.jfinal.com/doc/1-11
https://www.jfinal.com/doc/1-3

2019-07-18 11:37

@牧马人 这个版本可以用 jetty-server 2019.3

NoClassDefFoundError 是一个很基础的异常,检查三个项:
1:依赖是不是存在
2:依赖如果存在,但是有多个版本的依赖存在
3:maven 本地库的 jar 包是不是被损坏

要确保:依赖存在、只有一个版本、maven 本地库 jar 包没被损坏

其中最后一个问题,需要你手动删掉本地 maven 库中的相关目录, 让 maven 重新下载 jar 包

2019-07-18 11:23

注意,jfinal 版本也不能太低

2019-07-18 11:23

缺少依赖,或者老的依赖没有删干净

2019-07-18 11:00

方法得当才能事半功倍:
http://www.jfinal.com/share/1727

2019-07-18 10:59

这个场景用:
String json = getRawData();
User user = FastJson.getJson().parse(json, User.class);

getRawData() 可以多次调用

2019-07-17 19:45

非常细致的源码解读,有些内容可以当成是文档的进阶来阅读, 谢谢分享

2019-07-17 17:13

@邓小杰 jfinal undertow 是不可能回调 afterJFinalStart() 两次的,单步调试一下找原因

2019-07-17 16:55

@邓小杰 这事肯定与 jfinal 无关了,检查一下 tomcat 部署时的坑:
https://my.oschina.net/jfinal/blog/353062

2019-07-17 16:30

@邓小杰 这个是 java 基础, 代码如果被阻塞,程序执行到那就不会动了, 你 new 出一个线程是让这个线程继续往下走,你的主线程才得以继续

这个问题与 jfinal 是完全无关的, 纯粹 java 基础

2019-07-17 15:55

@think-takn 这么快,还不到一分钟呢? 用的哪个方案?

2019-07-17 15:48

@think-takn 如果你实在懒得去找源因,做一个 Handler, 花几行代码解决一下:
public class MyHandler extends Handler {
public void handle(String target, req, resp, isHandled) {
if (target.endsWith("/")) {
target = target.substring(0, target.length() -1);
}

next.handle(target, req, resp, isHandler);
}
}

最后在 configHandler 中配置一下:
configHandler(Handlers me) {
me.add(new MyHandler());
}

2019-07-17 15:45

@think-takn 改了还出错,那就是别的原因了, jfinal 本身就是支持的,你单步调试跟踪一下,看是什么地方的问题