JFinal框架小结

贲骏喆
2023-12-01

用了JFinal框架一段时间了,虽说不是完全掌握,但也有了一定了解,下面总结目前所知道的知识点:

一个基本的JFinal项目,只需配置xxconfig(extends JFinalConfig)、xxcontroller(extends Controller)、xxmodel(extends Model)

1. config里需要实现5个抽象方法 configConstant、configRounte、configPlugin、configInterceptor、configHandler. 这些JFinal官方文档里有详细说明。interceptor和Handler一般用不到~

以下参考官方文档:

configConstat配置JFinal常量值,如开发模式常量 devMode 的配置,默认视图类型 ViewType的配置

public void configConstant(Constants me) {  
me.setDevMode(true);    //JFinal运行在开发模式下
me.setViewType(ViewType.JSP); //设置默认视图类型为JSP
}

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

configRounte配置 JFinal访问路由

public void configRoute(Routes me) {  
me.add("/hello", HelloController.class);
 } 
configPlugin 配置 JFinal Plugin
 C3p0 数据库连接池插件与 ActiveRecord 数据库访问插件。通过以下的配置,可以在应用中使用 ActiveRecord 非常方便地操作数据库

public void configPlugin(Plugins me) { 
	loadPropertyFile("your_app_config.txt"); 
		C3p0Plugin c3p0Plugin = new C3p0Plugin(getProperty("jdbcUrl"),  getProperty("user"), getProperty("password"));  
		me.add(c3p0Plugin); 
		ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin);  
		me.add(arp);  
		arp.addMapping("user", User.class);
 }
configInterceptor JFinal 的全局拦截器,全局拦截器将拦截所有 action 请求,除非使用 @Clear Controller 中清除

public void configInterceptor(Interceptors me) {
  me.add(new AuthInterceptor());
 }
configHandler 配置 JFinal Handler ,Handler 可以接管所有 web 请求,并对应用拥有完全的控制权,可以很方便地实现更高层的功能性扩展。

public void configHandler(Handlers me) {  
me.add(new ResourceHandler());
 }


 2. controller里是页面调用的方法,是定义Action方法的地方,是组织Action的一种方式

public class HelloController extends Controller { 
public void index() {   
renderText("此方法是一个action");  
}  
public void test() {   
renderText("此方法是一个action");  
} 
} 


3. Model是ActiveRecord中最重要的组件之一,它充当MVC模式的model部分

public class User extends Model<User> {
public static final User dao = new User();
}
以上代码中的User 通过继承 Model,便立即拥有的众多方便的操作数据库的方法。在 User 中声明的 dao静态对象是为了方便查询操作而定义的,该对象并不是必须的。基于 ActiveRecord 的 Model 无需定义属性, 无需定义 getter、 setter方法,无需 XML 配置,无需 Annotation 配置, 极大降低了代码量。




 类似资料: