JFinal-02-JFinalConfig

JFinalConfig的子类需要实现以下5个抽象方法
public class DemoConfig extends JFinalConfig {
    public void configConstant(Constants me) {}
    public void configRoute(Routes me) {}
    public void configPlugin(Plugins me) {}
    public void configInterceptor(Interceptors me) {}
    public void configHandler(Handlers me) {}
}
configConstant(Constants me)

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

public void configConstant(Constants me) {
    me.setDevMode(true);
    me.setViewType(ViewType.JSP);
}

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

configRoute(Routes me)

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

public void configRoute(Routes me) {
    me.add("/hello", HelloController.class);
}

Routes类的主要方法如下:

public Routes add(String controllerKey, Class<? extends Controller> controllerClass, String viewPath)
public Routes add(String controllerKey, Class<? extends Controller> controllerClass)

第一个参数 controllerKey 是指访问某个 Controller 所需要的一个字符串,该字符串唯一对应一个 Controller,controllerKey 仅能定位到Controller。第二个参数 controllerClass 是该controllerKey 所对应到的 Controller。第三个参数 viewPath 是指该 Controller 返回的视图的相对路径(该参数具体细节将在 Controller 相关章节中给出)。当 viewPath 未指定时默认值为controllerKey。
JFinal-02-JFinalConfig
从表中可以看出,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 功能。

public class UserController extends Controller {
    @ActionKey("/login")
    public void login() {
        render("login.html");
    }
}
假定 UserController 的 controllerKey 值为“/user”,在使用了@ActionKey(“/login”)注解以后,actionKey 由原来的“/user/login”变为了“/login”。该注解还可以让 actionKey 中使用减号或数字等字符,如“/user/123-456”。

大规模团队开发:
JFinal-02-JFinalConfig

上一篇:【Kafka中文社区】Kafka核心组件之Controller功能及故障转移(2)


下一篇:异步(总结,双向异步)