论坛首页 Java企业应用论坛

谈谈ET-MVC的路由映射功能

浏览 2464 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-09-22   最后修改:2009-04-13

1、根据请求URL映射到控制器和操作的功能由RouteTable进行登记,比如系统默认会有这样的映射规则:

        Route defaultRoute = new Route("$controller/$action/$id", DefaultRouteHandler.class);
        routes.add(defaultRoute);

即按照“控制器/动作/ID”的方式进行匹配,使用默认的路由处理DefaultRouteHandler,在映射控制器时支持分包功能,将控制器类可以按包分成多个控制器包。比如:

http://localhost:8084/myweb/ca/config/test/23将映射成{controller="controllers.ca.ConfigController",action="test",id="23"}

http://localhost:8084/myweb/user/login将映射成{controller="controllers.UserController",action="login"}

 

2、可以自定义路由规则,比如

        Route route = new Route("blog/$year/$month/$day", "blog", "show", DefaultRouteHandler.class);
        RouteTable.addRoute(0, route);

将插入新的路由规则,其优先级在默认路由之上,这时

http://localhost:8084/myweb/blog/2008/02/03将映射成{controller="blog",action="show"},并设置参数year,month,day。

 

3、可以实现RouteHandler接口,以实现自定义路由映射处理方法。

 

GRAILS的控制器还没能进行分包,ROR可以按模块进行划分,ET-MVC对controller的匹配是可以进行分包。欢迎大家讨论一下这种路由映射规则如何?

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics