2016-08-22 16:03
第一个建议中,在需要照顾到打破约定的路由规则时,就需要再引入别的办法来解决,而且 jfinal 的现在的路由在满足你的建议方面有如下两点:
1:可以自己写个工具类实现,很容易地去除掉 me.add(...) 这行代码
2:即便是有 me.add(...) 这行代码,只不过是每一个 Controller 需要配置一行而已,有些 controller 中或许有几十个 action,相当于几十个路由,但配置只有一行代码,所以这个与传统的路由配置在工作量上是有本质区别的
2:getPara(paraName) 就可以获取到问号挂参的参数,文档中有说明,而 getPara(int) 获取的才是 urlPara
2016-08-22 15:44
楼主的第一个建议,jfinal 基本上是采用的这种方式,只不过对于每一个 controller 要进行一下类似注册的操作:me.add(controllerKey, controllerClass, viewPath),最后生成的路由与类主所说的是一致的:"/controllerKey/method/parameters",可能楼主是希望在此基础之上,连 me.add(...) 这个操作都去掉之。这个确实很容易去掉,只不过,去掉以后,需要引入额外的概念去完善所缺失的功能,例如,用户希望路由的 controllerKey 是随意变的,有时候不希望与约定一致,而且注册相对于扫描反射的方式更加安全,因为扫描的时候可能会扫描到第三方 jar 中的controller