Jfinal在idea的maven中引用,会立即执行路由的问题

1617960132(1) (1).jpg在idea下使用maven项目,引入jfinal后,会直接触发路由,导致项目访问url的时候,直接报404 Action Not Found: /,登入页面无法访问,

如果添加 me.add("/", Login.class),给斜杆配置后就可以访问登入页面,
但配置me.add("/hello", Login.class),页面就又不能访问了,控制台却有url输出
而且在idea下,路由会被触发两次,第一次项目启动的时候就立马触发理由报Not Found: /,
第二次浏览器打开页面后又报了一次Not Found: /,

理论上我路由都没配置为什么会强行叫Not Found: /,在idea下jfinal好像路由都变得乱七八糟,是什么问题导致的,为什么eclipse引入jfinal都好好的

评论区

杜福忠

2021-04-10 14:24

建议安装一个插件:“中文语言包” ,在插件市场中搜索:中文 ,就可以安装了。
安装中文环境后,就能看懂idea到底配置了什么功能。

再说上面描述的问题:
Not Found: / ,因为你把路由都注释掉了, 所以有访问时自然是报错误信息:“未找到:/” 了。
再说为啥启动后就会被访问一下,这个就得看你 idea自带的Tomcat是咋配置的了,估计是勾选了:启动后自动访问的功能。
再说为啥会访问两次,这个可能和浏览器有关系,有的浏览器打开网页后会自动请求favicon.ico文件,用于在浏览器上显示一个小图标,有的项目根目录里面刚好就没有这个文件,然后浏览器就会各种探测去请求,甚至有的浏览器会不断循环请求。

再说jfinal路由,这个Java里面应该没有比它更简洁高效的路由设计模式了,它就是一个HashMap通过请求地址键值Map来匹配,由ActionMapping管理,map.get不会随着用什么编写工具和其他平台而产生什么其他的规则。
敲码时感觉各种乱了或者做不出来的时候,注意先休息一下。出门走两圈呼吸清醒一下或者小眯一下。可能是用脑过度,思绪混乱了。静下来的时候再去细分析问题就会变得很简单

零无

2021-04-10 17:37

@杜福忠 我是将jfinal的filter配置由/*改成了/*.jfl,/*的方式j在idea里面final就会立即启动路由拦截,这时候要是没有给它配置路径,它就直接报Not Found: / ,希望能改进下,我现在是更改了拦截的方式,就避开了

杜福忠

2021-04-10 20:42

自定义ActionHandler 了? 如果没有的话,需要处理一下,默认请求路径ActionHandler 不处理带 . 的资源,
if (target.indexOf('.') != -1) {
return ;
}
https://jfinal.com/doc/2-7
https://gitee.com/jfinal/jfinal/blob/master/src/main/java/com/jfinal/core/ActionHandler.java

热门反馈

扫码入社