2019-01-26 11:14

@Dreamlu jfinal 在理念上没有 IOC、DI, 只是为了省代码、提效率有一个 @Inject 功能

@Inject 这个功能怎么能用上 Annotation Processor,并且可以获得益处?

2019-01-26 11:01

@Jieven @Dreamlu @杜福忠 关于 spring 系,我自己还没毕业的时候就开始用,用了三年多,后来开发 jfinal 时,spring 中东西一点都没用上,完全没有可参考之处

或许现在的 Spring 出了些有意思的创新,如果有需求那我也会毫不犹豫地将思想拿过来用。思想、知识的共享、借签才有了这个世界的快速发展

2019-01-26 10:58

感觉这个东东最大的好处还在于省代码,生成器生成的代码还是显得冗余

jfinal 为了省代码上的是生成器,目前用着还好,因为生成器除了生成 base model 中的 getter、setter 以外,还生成了 _MappingKit 之类的东东,而这些代码 Annotation Processor 还是无法满足需求

这个东东要达成的目标,终极方向还是要在 Java 语言中引入新的 feature,例如要生成 getter setter 方法的属性可以这么来:
accessor private String name;

加个 accessor 关键字来表明 name 字段具有 getter setter 方法

2019-01-26 10:50

想要深入理解 handler,只需要做一个简单的 handler,然后里头设置一个断点,会看到只要有请求过来都会被拦截到

handler、interceptor 在本质上都是 AOP 的一种实现,都是为了在你的目标代码之前、之后切处一些额外的行为

2019-01-26 10:49

handler 处于更早的一个层级,可以拦截所有请求,包括静态资源的请求

而 interceptor 只能拦截 Controller 中定义的 action

handler 的拦截范围总全局的,而 interceptor 的拦截范围可以配置成:method、class、global 三个级别

只要是 interceptor 可以满足需求的情况就用 interceptor,否则才考虑用 handler

2019-01-25 18:21

@177自律 如果上面的办法测试出来仍然有问题,那一定是当前你用的 tomcat 有 bug, 建议你换一下 tomcat 版本

2019-01-25 18:20

@177自律 刚刚测试了一下,是没有问题的,你也试试我的测试方法:
1: 添加三个用于测试的 action
public void set() {
setSessionAttr("key", 123);
renderText("设置 session");
}

public void get() {
Object value = getSessionAttr("key");
renderText("获取 key = " + value);
}

public void remove() {
removeSessionAttr("key");
renderText("移除 session");
}

2:然后先请求一次 set ,再请求一次 get,再请求一次 remove,最后再请求一次 get,会发现工作完全正常

2019-01-25 17:16

可能是流程问题,单步调试一下,看流程走对没有,有时候看似发了请求,但可能是路由之类的不对,请求没到达后端。 尤其是 ajax 请求

再一个,用的什么容器? 是 tomcat 还是 undertow

2019-01-25 16:16

@zhangke 这个原因引发问题,还是头一次见,解决就好

2019-01-25 15:32

web.xml 中要配置好,然后去掉 undertow 依赖,pom.xml 中的打包类型由 jar 改为 war 。再导出 war 包即可

2019-01-25 12:17

@jffly 看你的 H5 中是如何使用数据的,如果需要是 json,那么 jfinal 端就 renderJosn

如果是需要 html 片段,那么就 render(...)

2019-01-25 11:37

不要将重定向与 render 联系在一起,完全是两回事

而且里头的逻辑也不对 render 与跳转无关,建议网上找点重定向的资料先看一下

2019-01-24 23:18

@zhangke 用 mvn clean package 打好包,然后检查 lib 目录下面所有 jar 包,看有没有两个 jar 包中都存在 org.xnio.channels.Channels 这样的类文件

2019-01-24 23:07

@zhangke 如果不是包有损坏,那就是有不同版本的多个 jar 出现了冲突,检查出问题启动的 class path 下是否有多个 jar 包有冲突