2019-07-26 10:06

base model 中被生成的 getter 方法本质还是转调的 Model.getXxx 方法,查看一下 base model 中的方法中的代码可知

2019-07-25 19:24

启动代码JFinal.start("WebRoot", 80, "/") 第一个参数为什么是 WebRoot ?

下载首页的 jfinal demo for maven , 导入即可运行

这里有同样问题的人:
http://www.jfinal.com/feedback/6252

2019-07-25 16:20

@白小J 你这个是 jetty-server 启动成功,并不能证明项目启动成功

验证方法:
1: 在 configConstant(Constants me) 中输出一行字
2: 看字被输出没有

或者在上面的方法中设置断点调试一下

2019-07-25 16:16

404 页面只要出现 Powered by Jetty:// 9.4.12.v20180830 这类东东,必定是项目没启动

jfinal 项目的 404 页面是这样的,访问一下即可看到:
http://www.jfinal.com/a/a/a

一般是因为 web.xml 中配置不对,根本没与 jfinal 项目建立任何关联

建议使用 jfinal undertow :
https://www.jfinal.com/doc/1-2

2019-07-25 15:56

@Code_Cat 单步调试看代码的动态执行流程,远比这里一个一个问题要高效得多

2019-07-25 15:55

根据文档的说明来:
https://gitee.com/jfinal/jfinal-weixin/wikis/Home

2019-07-25 14:17

@Code_Cat 会有默认主键,注意看 Dialect. 中的 getDefaultPrimaryKey()

2019-07-25 13:26

@Code_Cat 会出错误,试一试便知

2019-07-25 11:14

@小轩鞎 如果用的 jfinal undertow,升级到最新版,对 contextPath 的处理更精细

如果是用的别的东东,常规方法解决,例如检查路由对不对

2019-07-25 09:40

在浏览器手动输入 /upload/dtxx/19071911/19071911325000001.mp4
看能不能访问到,估计是路径问题

2019-07-24 19:23

./jfinal.sh start >> app.log

2019-07-24 14:14

但凡启动出现的错误页面中的信息出现的是 tomcat、jetty 它自己的页面,则表明 jfinal 没有启动成功

检查 web.xml 配置是不是指向了你的 XxxConfig, 你的 XxxConfig 中的 configConstant(...) 方法是否被调用到了? 通过设置一个断点半秒钟内知道答案

2019-07-23 12:19

说白了 me.addSharedFunction("/common/_layout.html") 这种用法, 仅仅只是将原本应该在 blog.html 中写的代码,挪到一个独立的地方去,例如挪到 _layout.html 中去

挪到一个独立的文件中去的好处是方便在多个地方都去重用它

2019-07-23 12:15

如果你还是无法理解的话,你可以将 _layout.html、_paginate.html 这两个文件中的所有 #define 定义的模板函数代码全部复制到 blog.html 中来理解,结构如下:

#define layout()
...
#@main()
...
#end

#define paginate()
...
#end

#@layout()

#define main()
...
#end

注意:上面所有代码全在 blog.html 之中,其中有三个模板函数定义 #define xxx() , 一个模板函数调用 #@layout()

如果你还是觉得有点不完美,将 #@layout() 这个调用挪到最后一行, 让三个 #define xxx() 放在最前面

2019-07-23 12:12

@瑟瑟发抖的小菜鸟 以 jfinal 官方的 jfinal_demo_for_maven 为例,用下面的方式来理解,以免绕远了:
1:下面两行代码会将 _layout.html、_paginate.html 中定义的 #define layout()、#define paginate() 这两个模板函数给 "搞成" 全局的
me.addSharedFunction("/common/_layout.html");
me.addSharedFunction("/common/_paginate.html");

2:你的 render("blog.html") 调用中的 blog.html 中的第一行代码是:
#@layout()

上面这行代码调用了前面提到的被 "搞成" 全局的 #define layout() 模板函数

3:现在程序走到了 _layout.html 中的 #define layout() 中,继续往下走,会走到:
#@main()

上面的代码会调用你在 blog.html 中定义的 #define main() 模板函数

其实整个流程,你就当成 java 里头的方法定义与方法调用