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 里头的方法定义与方法调用

2019-07-23 11:28

@1234567856756745 jfinal 诞生超过八年多时间,从未碰到过这类问题

看来这个问题,只能是你仔细排查, 404 的问题太好排查了

大不了你做个远程调试:
http://www.jfinal.com/share/1528
http://www.jfinal.com/feedback/5106

2019-07-23 10:57

http 协议规定了 url 中不支持中文,这个不是 jfinal 能决定的

需要你手动将 url encode 一下:
url = URLEncoder.encode(url, "UTF-8")
redirect(url);

2019-07-23 10:54

@瑟瑟发抖的小菜鸟 笔误, #define layout() 是 _layout.html 中定义的,在 blog.html 中调用的是 #@layout()

笔误已在回复中更正

2019-07-23 09:39

强调一下,这个在文档中有详细说明,一定要先看文档,不要猜谜式的使用