首页 > 代码库 > JFinalConfig

JFinalConfig

      基于 JFinal 的 web 项目需要创建一个继承自 JFinalConfig 类的子类,该类用于对整个 web项目进行配置。JFinalConfig 子类需要实现五个抽象方法,如下所示:                                                                                                                                                                                                                                     

技术分享

       1.configConstant(Constants me),此方法用来配置 JFinal 常量值,如开发模式常量 devMode 的配置,默认视图类型 ViewType的配置,如下代码配置了 JFinal 运行在开发模式下且默认视图类型为 JSP:

      技术分享

    

      在开发模式下,JFinal 会对每次请求输出报告,如输出本次请求的 Controller、Method 以及请求所携带的参数。JFinal 支持 JSP、FreeMarker、Velocity 三种常用视图。

 

       2.configRoute(Routes me)  ,此方法用来配置 JFinal 访问路由,如下代码配置了将”/hello”映射到 HelloController 这个控制器, 通 过 以 下 的 配 置 ,http://localhost/hello 将 访 问 HelloController.index() 方法,而http://localhost/hello/methodName 将访问到 HelloController.methodName()方法。

    技术分享

      Routes 类主要有如下两个方法:

技术分享

        第一个参数 controllerKey 是指访问某个 Controller 所需要的一个字符串,该字符串唯一对应一个 Controller,controllerKey 仅能定位到 Controller。第二个参数 controllerClass 是该controllerKey 所对应到的 Controller。第三个参数 viewPath 是指该 Controller 返回的视图的相对路径(该参数具体细节将在 Controller 相关章节中给出)。当 viewPath 未指定时默认值为controllerKey。

      JFinal 路由规则如下表: 

技术分享

      从表中可以看出,JFinal 访问一个确切的Action(Action 定义见3.2节)需要使用controllerKey与 method 来精确定位,当 method 省略时默认值为 index。urlPara 是为了能在 url 中携带参数值,urlPara 可以在一次请求中同时携带多个值,JFinal 默认使用减号“-”来分隔多个值(可通过 constants. setUrlParaSeparator(String)设置分隔符),在 Controller 中可以通过 getPara(int index)分别取出这些值。controllerKey、method、urlPara 这三部分必须使用正斜杠“/”分隔。 注意,controllerKey 自身也可以包含正斜杠“/”,如“/admin/article”,这样实质上实现了struts2 的 namespace 功能

 

JFinalConfig