路由映射

路由是leap MVC中的重要概念,leap启动完成之后会生成一个路由表并打印在控制台,表示的是对应每个路径的处理方法,路由表的生成依赖Controller和Action。

Controller

Controller是控制器,leap有以下两种方式指定控制器:

  • base-package下的所有以Controller结尾的类都会被当成控制器
  • base-package下所有加了@Controller注解的类都会被当成控制器

如:

public class HomeController{

}

@Controller
public class Home{

}

以上两个类都是leap的控制器。

Action

Action是方法,也是真正处理请求的单位,每一个Action都会对应一个请求路径。默认情况下,Controller下的所有public方法都会被当成Action。

如:

public class HomeController{
    public void index(){

    }

    private void user(){

    }
}

这里index方法是一个Action,而user方法则不是。

路由表

leap启动完成之后,一般会打印类似如下路由表(如果没有打印,请检查日志级别或者是否有配置slf4j):

METHOD  PATH                     ACTION                     DEFAULT VIEW
------  --------------------- ----------------------------- ------------------------------
*       /user_model           UserModelController.index     (none)
*       /user_model/list_user UserModelController.listUser  (none)
*       /user_model/index     UserModelController.index     (none)

第一个METHOD表示的是请求方法如POSTGET等,*表示接受所有方法,第二个PATH表示的是请求的URI,ACTION表示请求处理的Action,最后一个DEFAULT VIEW表示默认的返回视图页面。

这里我们主要看一下PATHACTION的映射规则:

  • 把类名中的Controller的后缀去掉,然后将驼峰式命名转为下划线命名:UserModelController → user_model
  • 把方法的名字从驼峰式转成下划线命名风格:listUser → list_user
  • Controller的路径加action的路径即是action的唯一访问uri:UserModelController.listUser → /user_model/list_user

这个就是leap MVC的路由规则。

results matching ""

    No results matching ""