Jfinal第一次启动后自动打开浏览器,那个index的action执行三次?

屏幕快照 2016-11-11 下午2.01.14.png

用log4j打印的日志

并没有使用拦截,浏览器也没有请求,直接输出的是一串文字

屏幕快照 2016-11-11 下午11.09.27.png

很简单一个demo

这是index action

屏幕快照 2016-11-11 下午11.11.11.png

找了一晚上没找到原因

好吧我来结贴了

在run configuration 里

屏幕快照 2016-11-12 上午11.43.33.png

把那个取消,手动请求的话,一点问题也没有,可能是Bug吧。

感谢@JFinal @zempty 


评论区

JFinal

2016-11-11 14:32

历史上所有出现该问题的都是这两个原因:
1:浏览器发起了多次请求,例如页面文件中有 <img src="" > 这类资源为空的标记,还有 js 主动发请求的情况
2:后端程序逻辑错误,例如在 Interceptor 使用 forwardAction、rendriect 不当造成的

JFinal

2016-11-11 14:33

第一种情况,可以通过在浏览器中按一下 F12 打开浏览器提供的开发者工具,查看具体的请求次数即可
第二种情况,单步调试一下程序即可

zempty

2016-11-11 19:25

我曾经发现过有人是在handler里有分支语句,然后放行了两次。next.handle()执行了两遍,所以action也整了两发,你看看你是不是这个原因。

JFinal

2016-11-11 21:26

@zempty handler 放行两次的属于我未听说过的第三种原因了,感谢分享

qin

2018-07-11 10:46

@JFinal 这个问题我也遇到了部署的一个新项目,添加路由后默认,运行工程index函数被请求了3次

localhost8080

2018-07-16 10:28

@qin 这个问题我也不知道最后怎么弄的,我直接取消了自动打开浏览器,你看看你项目存不存在上面说的那种问题