前言
本章讲解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路由规则如下:
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,使用其他数据库的伙伴们要严重注意,否则会报下面的错误!
6.configInterceptor(..)
稍后补充。。。
7.configHandler(..)
稍后补充。。。