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;

2019-06-18 00:08

3.5处理了,HttpKit.readData
去掉 close() 否则后续 ActionReporter 中的 getPara() 在部分 tomcat 中会报 IOException : Stream closed

2019-06-18 00:06

升级吧,推荐使用最新版, 其次最低是3.5版

2019-06-17 23:46

其实看了源码就知道了,第一个是从class输出目录去找的,如果想指定目录可以提前调用PathKit.setWebRootPath

第二个是因为 jfinal-undertow中找到文件夹并且注入的值了