2019-06-27 16:36

public static DataSource getDataSource() {
这行代码,你改了啊! 官网的例子是 : DruidPlugin druidPlugin = DemoConfig.createDruidPlugin();
你这是自己 new DruidPlugin的啊.
修改一下:
把 启动类 里面那个 new DruidPlugin 抽取为一个静态 方法 createDruidPlugin(), 模仿官网例子DemoConfig里面那个写法, _JFinalGenerator 里 修改一下 DemoConfig 改为你自己的 YouConfig.createDruidPlugin();

2019-06-27 10:01

上面文档地址打开后, 网页内搜索: MyWebSocket
端口修改搜索: undertow.port=
配置是活的, 随便组装使用, 比如: https://gitee.com/yun_final/JFinal-API/blob/master/src/main/resources/undertow.txt

2019-06-27 09:35

是的,可以 https://www.jfinal.com/doc/1-4

2019-06-26 14:37

自定义一个注解 BeforeVal, 然后在Interceptor 中去取值判断就好了,
比如: inv.getMethod().getAnnotation(BeforeVal.class)
@BeforeVal({"b", "c"})
@Before({BbbInter.class, CccInter.class})

2019-06-25 02:07

@jfinal4cyy 我觉得吧, 可以试试仿制一个Navicat ~ 并且是支持模版语法的 Navicat~

2019-06-24 15:09

你可以看下源码, getModel(Ab03.class); 里面其实就是 循环 set , 那么getModel和你在外面代码set其实就是一样的. 保存到数据库,可以看下 save 时生成的 SQL 是啥样的,就知道了

2019-06-24 09:57

一样的, 请求中发送多个主键字段

2019-06-22 12:54

是文档里面的写法吗? https://www.jfinal.com/doc/1-3

我看脚本是用的kill `pgrep -f ${APP_BASE_PATH}` 2>/dev/null 代码路径去杀的进程啊,应该是支持的吧?

如果确实不行的话,还可以新建一个类去继承一下启动入口类,比如 TestYourMainClass,脚本也新建一个叫 TestJfinal.sh改下里面MAIN_CLASS的值,肯定就可以了

2019-06-21 18:55

自建Handler,通过前缀地址做判断 https://www.jfinal.com/doc/2-7

2019-06-21 16:16

getVehicleList.getList()
一定要学会点击类名进入类里面看源码,不然一直学的懵懵懂懂的

2019-06-19 14:19

@洛小风 生成器生成的是 比如:
setId(int id){
set("id", id);
}
而自建的:
setId(int id){
this.id=id
}
这个ID值就没有放入Model里面那个Map里啊, 所以Db.batch里面就取不到值了

2019-06-19 14:11

感觉AskForLeave对象里面get和set方法不是生成器生成的, 是自建的属性吧?

2019-06-18 23:25

还有文档中提到的升级注意事项: https://www.jfinal.com/doc/14-1

2019-06-18 23:23

常规使用的1.9升级上来重点大改的地方有日志Log类(批量替换),还有一个是文件上传功能取名字值的API改了(批量替换),Model里面几个get加了_下划线前缀(批量替换)。其他都些小改动根据爆红提示进行修改,换上的新妆的时候各种爆红提示,不要害怕,根据报警提示一点一点改,配合批量替换功能,一会儿就改完了。我升级过1.2的项目到3.5,问题不大

2019-06-18 12:09

数据库做一张cron表,每个任务对应一条记录,增加 version 字段,任务运行前做一下查询,再version +1后的值 再更新到数据库,返回 1 了说明竞争到了执行权限, 就接着运行任务, 否则结束任务即可
比如 UPDATE cron SET version=101 WHERE (`id`='1') and version=100;