JFinal3.0快速上手(十二)
通过阅读之前的文章,小伙伴们应该已经会使用jfinal框架了。那么接下来的任务就简单了,我们将一起就一些常见的却不怎么在意的知识点做一些讲解。让知识掌握的更加牢固,记忆更加深刻。
一、关于JFinalConfig的那些事儿(上)
使用jfinal开发web项目,必须要继承JFinalConfig(抽象类),实现该类内的6个抽象方法。这几个方法在子类中必须要实现,否则程序将无法正确运行。先来快速的浏览下6个方法名,好有个印象。具体如下:
序号 | 方法名 | 描述 |
---|---|---|
1、 | configConstant() | jfinal常量配置 |
2、 | configRoute() | jfinal路由配置 |
3、 | configEngine() | jfinal模板引擎配置 |
4、 | configPlugin() | jfinal插件配置 |
5、 | configInterceptor() | jfinal拦截器配置 |
6、 | configHandler() | jfinal的Handler(处理流程)配置 |
1、configConstant常量配置
在configConstant()方法中,我们可以处理一些和jfinal有关的常量处理,这样的操作很便利。结合上一节的内容,我们来查看代码。
@Override
public void configConstant(Constants me) {
//设置当前环境为开发环境
me.setDevMode(true);
}
以上的配置是告诉jfinal,现在我们处在日常的开发阶段,你必须在控制台输出action report(请求日志)信息。如下图:
JFinal action report -------- 2017-02-25 04:21:13 --------------------------
Url : GET /manage/1
Controller : morality.base.ManageController.(ManageController.java:1)
Method : index
UrlPara : 1
Url:输出了请求方式,接着输出了action的路由路径(路由+方法名);
Controller:输出了处理这个action的Controller的名字和所在包的路径;
Method:输出当前请求的是哪个方法(处理这个请求的是哪个方法);
UrlPara:输出请求的url参数,该参数没有name,且紧跟着url;
例如:http://localhost:8080/morality2017/manage/1
Parameter:输出url跟随的参数(表单提交的数据或通过"?"外挂的参数),该参数是以键值对的方式表示。例如:http://localhost:8080/morality2017/manage/1?name=yetangtang
,输出信息如下:
JFinal action report -------- 2017-02-25 04:21:13 --------------------------
Url : GET /manage/1
Controller : morality.base.ManageController.(ManageController.java:1)
Method : index
UrlPara : 1
Parameter : name=yetangtang
这样可还明白,小伙伴们?
2、configRoute路由配置
jfinal的路由配置也是一个比较重要的知识点,不过也是很好理解的,跟一些常用的框架配置路由差不多,比如Struts、Spring等。
@Override
public void configRoute(Routes me) {
//me.setBaseViewPath("/flower");
//me.addInterceptor(new FrontInterceptor());
me.add("/manage",ManageController.class);
me.add("/login",LoginController.class);
}
细心的小伙伴会发现路由配置这个方法中居然新暴露了几个方法:
setBaseViewPath(),可为每组 Controller 统一配置baseViewPath;
addInterceptor(),可为每组 Controller 统一配置 Interceptor。
3、configEngine模板引擎配置
这个功能可以说是比较重要的,因为有些时候我们不想重复性的代码。比如分页,比如添加用户和修改用户其实页面是一样的,就是想偷个懒。这一节,先简单的介绍一个使用方法,这是3.0新增的一个功能。在2.X版本中,必须要实现的只有5个抽象方法,小伙伴们还有印象么?
@Override
public void configEngine(Engine me) {
//fileName就是页面的路径+文件名
me.addSharedFunction("/common/_paginate.html");
}
6、 configPlugin插件配置
jfinal的插件配置使用方法没有什么变化。不清楚的童鞋,可以看看之前的文章。
5、configInterceptor拦截器配置
这是全局的拦截器,会拦截所有的请求。没什么变化。
6、 configHandler处理流程配置
也没什么什么变化,就不赘述了。
PS:关于配置这一块已经讲了70%常用的技能,剩下的30%将会在下一节中讲解,敬请期待!祝各位小伙伴周末愉快!