4、极简路由规则
JFinal 仅有四种路由,路由规则如下表:
变更:从 jfinal 4.9.03 版本开始,controllerKey 改名为 controllerPath,多个 controller 可以共享同一个 controllerPath。
从表中可以看出,JFinal 访问一个确切的 Action(Action定义见3.2节) 需要使用 controllerPath 与 method 来精确定位,当 method 省略时默认值为 index。
文档中提及,当method省略时默认值为index,反过来,如果method=index不省略呢?测试好像报错?如下:
定义contrllerPath=/,对应class=IndexController,内有方法index
http://HOST/,能正确识别
http://HOST/index,能正确识别
http://HOST/index/arg1-arg2-arg3,不能正确识别,警告: 404 Action Not Found: /index/
http://HOST/arg1-arg2-arg3,能正确识别
问题:是不是意味着当访问的method为index的时候,必须省略?
urlPara: index
如果不希望有 urlPara,可以在 index 中通过下面两种方式之一即可:
1:使用 checkUrlPara(0) 限定不使用 urlPara
public void index() {
checkUrlPara(0);
...... 其它代码在此
}
2:使用拦截器
@Before(NoUrlPara.class)
public void index() {
...... 其它代码在此
}
两种方法任选其一
一般来说 urlPara 是默认开启的,没有限制,但脑海中要有这根弦存在。此外,多关注一下控制台输出的 jfinal action report, 各种参数都有输出