2019-10-21 15:34

@smileForLife 以上说的都是针对 controller 的 action 上的拦截器

jfinal 还有一种配置在业务层上的拦截器,其范围规则基本一样,注意两个小点:
1:业务层拦截器没有 Routes 范围级别的,因为业务层没有路由的概念
2:业务层的全局拦截器的配置方法为:
configInterceptor(Interceptor me) {
me.addGlobalServiceInterceptor(...);
}

注意看第二条,配置方法名是 :addGlobalServiceInterceptor(...),这个是为了与 action 全局拦截器的配置方法区别开来

2019-10-21 14:53

在具体使用的时候,这四种范围的拦截器会很符合直觉地去使用,试用一下便知

2019-10-21 14:52

说到拦截器,要先了解什么是 action, action 就是 controller 中定义的 public 方法,是接受外部请求的最小单位。 而拦截器会对这些 action 的请求进行拦截器

了解了 action ,拦截器的拦截范围有如下几种:
1:Global 拦截器,拦截所有 action
2:Routes 拦截器,拦截所有在当前 Routes 下添加的所有 Controller 中的所有 action
3:Class 拦截器,拦截当前类里头的 action
4:Method 拦截器,拦截当前 action

以上四种范围的拦截器,拦截的范围是从大小到的,拦截的先后次序是: Global、Routes、Class、Method

这些知识在文档中有相关的说明,并且配有相应的示例代码:
https://www.jfinal.com/doc/4-4

所有拦截器都是一样的,只不过你可以根据拦截的范围将它们配置在不同的地方:
1:在 configInterceptor(Interceptors me) 中添加的是 Global 拦截器
2:在 Routes 中添加的是 Routes 拦截器
3:在 Class 上用 @Before(...) 添加的拦截器是 Class 拦截器
4:在 Method 上用 @Before(...) 添加的拦截器是 Method 拦截器

2019-10-21 12:23

@要输就输给追求 这个是正解, save() 以后直接获取即可

2019-10-21 12:22

在 controller 中先调用一次 getFile() , 然后调用一次 getRequest() 获取到的就是你想要的 MultipartRequest 这样的对象

2019-10-21 09:07

第二个参数用 null 即可,getBean(..., null)

2019-10-20 20:26

@北流家园网 俱乐部群里面多交流,俱乐部越来越多的人会选择 jfinal 做自己的产品

未来公司会选择能长期加班、工资低的 00 后,趁早出来做自己的事情才是大势

2019-10-20 11:46

@Theo jfinal 的 Redis 插件是对 jedis 这个第三方的一个极薄封装,注意是 "j"edis , 不是 "r"edis

2019-10-20 11:42

看了一下源码,第二个参数确实为秒,按理说你的代码是 3600 秒过期

换一换 jedis 版本试试,例如换上 jfinal 官方的 jedis 版本

或许是取数据的时候参数不对,造成取出了 null 值,注意参数大小写

2019-10-19 17:12

异常已经很清楚:
Caused by: java.io.EOFException: Unexpected EOF read on the socket

改客户端代码,让上传方式为正确的

2019-10-19 17:11

@chcode 线程为固定数量,这个是 cron4j 保障过的

2019-10-19 17:09

换 durid 版本试试

2019-10-19 17:08

添加两行代码:
_MappingKit.mapping(arp);
me.add(arp);

2019-10-19 17:03

以下次序是固定先后的
configConstant
configInterceptor
configRoute
configEngine
configHandler
onStart

而 configPlugin 可以通过 Constants.setConfigPluginOrder(int) 进行调整,通过个方法可以调整 configPlugin 在以上次序中的次序