JFinal入门(三)JFinal配置文件详解

时间:2024-04-09 09:09:55

前言

      本章讲解JFinal配置类文件

方法

1.概念

我们知道,JFinal的配置文件不同于之前框架的类XML的写法,采用的是Java类的方式配置,该类需要继承JFinalConfig,用于对整个web项目进行配置。

JFinalConfig子类需要实现六个抽象方法,如下所示:

package cn.edu.ccut.config;

import com.jfinal.config.*;
import com.jfinal.template.Engine;

/**
 * JFinal项目配置文件
 */
public class BaseConfig extends JFinalConfig {

    public void configConstant(Constants me) { }

    public void configRoute(Routes me) { }

    public void configEngine(Engine me) { }

    public void configPlugin(Plugins me) { }

    public void configHandler(Handlers me) { }

    public void configInterceptor(Interceptors me) { }
}

2.configConstant(..)

此方法用来配置JFinal常量值,如开发模式常量devMode的配置,如下代码配置了JFinal运行在开发模式:

在开发模式下,JFinal会对每次请求输出报告,如输出本次请求的URL、Controller、Method以及请求所携带的参数。

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

常用的常量配置:

public void configConstant(Constants me) {
    //配置是否处于开发模式,默认为false
    me.setDevMode(true);
    //配置项目编码格式,默认UTF-8
    me.setEncoding("UTF-8");
    //配置前台传递变量的分隔符,默认为“-”
    me.setUrlParaSeparator("-");
    //配置返回的视图类型,默认为JFINAL_TEMPLATE
    me.setViewType(ViewType.JSP);
}

3.configRoute(..)

此方法用来配置访问路由,也就是controller的映射路径。

如下代码配置了将 "/hello" 映射到HelloController这个控制器,通过以下的配置,http://localhost:端口/hello  将访问 HelloController.index() 方法,而http://localhost:端口/hello/methodName  将访问到 HelloController.methodName() 方法。

public void configRoute(Routes me) {
    me.add("/hello", HelloController.class);
}
package cn.edu.ccut.controller;

import com.jfinal.core.Controller;

/**
 * JFinal的控制器类
 */
public class HelloController extends Controller {
    //控制器的默认访问方法,相当于Struts的execute
    public void hello(){
        //返回text文本
        //String username = getPara("username");
        //System.out.println(username);
        renderText("Hello JFinal");
    }
}

JFinal路由规则如下:

JFinal入门(三)JFinal配置文件详解

4.configEngine(..)

稍后补充。。。

5.configPlugin(..)

此方法用来配置JFinal的Plugin,一般用来配置数据库连接池插件与ActiveRecord数据库访问插件。通过以上的配置,可以在应用中使用ActiveRecord非常方便地操作数据库。这一点十分的????????

范例:配置Druid数据库连接池和ORM

public void configPlugin(Plugins me) {
    DruidPlugin dp = new DruidPlugin("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger");
    me.add(dp);
    ActiveRecordPlugin arp = new ActiveRecordPlugin(dp);
    me.add(arp);
    arp.setDialect(new OracleDialect());
    arp.addMapping("users", User.class);
}

实体类配置如下:

package cn.edu.ccut.bo;

import com.jfinal.plugin.activerecord.Model;

public class User extends Model<User> {
    public static final User dao = new User().dao();
}

这里说一个坑,JFinal默认设置的Dialect是MySQL的Dialect,使用其他数据库的伙伴们要严重注意,否则会报下面的错误!

JFinal入门(三)JFinal配置文件详解

6.configInterceptor(..) 

稍后补充。。。

7.configHandler(..)

稍后补充。。。