目前jfinal支持的路由有下面几种
/** * Support four types of url * 1: http://abc.com/controllerKey ---> 00 * 2: http://abc.com/controllerKey/para ---> 01 * 3: http://abc.com/controllerKey/method ---> 10 * 4: http://abc.com/controllerKey/method/para ---> 11 * The controllerKey can also contains "/" * Example: http://abc.com/uvw/xyz/method/para */
希望能支持 /{id}/list 这样的路由!!
2:jfinal 路由设计的思脉是:路由本质上是为了去请求某个类中的某个方法,url 是为了去对应 object.method(p1, ..., pn) 这样的某个对象的某个方法。
3:进一步来 /controllerKey/methodName/urlPara 对应到 object.method(p1, ..., pn),几乎所有的编程语言参数都是在方法名的后面,所以 jfinal 路由设计中的 urlPara 也放在了 methodName 的后面,为的就是更符合直觉
4:最后,jfinal 的路由设计,在解析的时候,通常只需做一次的 map.get(target) 的操作就可以得到对应的 action,如果得不到,最差的情况下也只是多一个对最后的 "/" 位置做一次 string的 substring操作,再 map.get(...) 一次,可以说是极致的性能。比那些 for 循环中做正则匹配起码快了一个数量级