1.同strust2,使用jfinal框架首先需要在web.xml配置自己的过滤器(com.jfinal.core.JFinalFilter),并初始化JFinalConfig类。

   <filter>
<filter-name>JFianl</filter-name>
<filter-class>com.jfinal.core.JFinalFilter</filter-class>
<init-param>
<param-name>configClass</param-name>
<param-value>com.xxxx.jfinal.config.MyJFinalConfig</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>JFianl</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

2.初始化的MyJFinalConfig类为JFinalConfig子类,MyJFinalConfig继承了父类的5个抽象方法:

① configConstant(Constants arg0) 该方法用于初始化系统部分全局参数,如设置是否为开发模式、编码格式、视图解析、URL参数分隔符、POST请求参数大小等等。

    @Override
public void configConstant(Constants arg0) {
// TODO Auto-generated method stub
//设置开发者模式(控制台会输出相关数据),默认非开发者模式
arg0.setDevMode(true) ;
//设置编码格式
arg0.setEncoding("UTF-8") ;
//设置解析视图类型,默认为FREE_MARKER(即html页面),还有JSP、VELOCITY
arg0.setViewType(ViewType.JSP);
}

② configPlugin(Plugins arg0) 该方法用于配置JFinal需要用到的相关plugin,如缓存机制、数据库连接池、数据库操作等等plugin。

   @Override
public void configPlugin(Plugins arg0) {
// TODO Auto-generated method stub
//数据库连接插件
C3p0Plugin cp = new C3p0Plugin("jdbc:oracle:thin:@10.0.65.22:1521:orcl", "scott", "xxxx", "oracle.jdbc.driver.OracleDriver") ;
arg0.add(cp) ;
//数据库访问插件
ActiveRecordPlugin arp = new ActiveRecordPlugin(cp) ;
arg0.add(arp) ;
// 配置Oracle方言
arp.setDialect(new OracleDialect());
//设置大小写不敏感
arp.setContainerFactory(new CaseInsensitiveContainerFactory(true)) ;
//添加model mapping
arp.addMapping("teacher", "T_ID", Teacher.class) ;
}

③ configRoute(Routes arg0) 该方法用于设置控制器Controller的请求映射路径和action中方法的视图部分路径

    @Override
public void configRoute(Routes arg0) {
// TODO Auto-generated method stub
//配置controller及其所匹配的路径(相当于struts.xml中的namespace)
arg0.add("/test", MyJFinalController.class);
}

④ configHandler(Handlers arg0) 此方法用来配置JFinal的Handler,Handler可以接管所有 web 请求,并对应用拥有完全的控制权,可以很方便地实现更高层的功能性扩展。

⑤ configInterceptor(Interceptors arg0) 此方法用来配置 JFinal 的全局拦截器,全局拦截器将拦截所有 action 请求

3. jfinal的控制中心controller,继承了com.jfinal.core.Controller类,会根据页面请求执行相应方法。

① controller方法与请求映射方式

  默认是请求路径与method名一致,如发请求 localhost:8080/jfinal/test/list ("/test"为该controller的namespace),则默认执行 MyJFinalController类的 list();如果直接发请求 localhost:8080/jfinal/test 则默认会执行MyJFinalController类的 index();

  若使用@ActionKey()注解则会打破之前配置的请求路径映射,如下,此时再请求localhost:8080/jfinal/test/list 则会不会执行list(),@ActionKey("/list")会让之前的namespace无效,此时的正确访问路径为localhost:8080/jfinal/list。

  @ActionKey("/list")
public void list(){ }

jfinal框架的初级学习的更多相关文章

  1. jfinal框架教程-学习笔记

    jfinal框架教程-学习笔记 JFinal  是基于 Java  语言的极速  WEB  + ORM  开发框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restfu ...

  2. jFinal 2.2入门学习之一:搭建框架输出helloword

    官方推荐用Eclipse IDE for Java EE Developers 做为开发环境 1.创建 Dynamic Web Project 2.修改 Default Output Folder,推 ...

  3. jfinal框架教程-学习笔记(二)

    上一节介绍了jfinal框架的简单搭建,这节通过一个小例子了解jfinal的结构和特点 先上图 1.建数据库(我用的是oracle数据库,其他的相对也差不多) -- Create table crea ...

  4. jfinal框架新手使用之路及开发心得

    从接触jfinal这个框架到现在差不多也有一个的时间了,因为之前接触的都是像spring ,springMVC,mybatis,struts2,hibernate这种传统,大多数公司都在用的这种框架. ...

  5. jfinal框架学习过程

    刚刚学习jfinal,通过一天左右的时间大体上理解了这个框架的用法,我对他的理解是JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速.代码量少.学习简单.功 ...

  6. Jfinal框架是什么框架?适用于什么项目呢?

    Jfinal框架是什么框架?适用于什么项目呢? jfinal 基于spring MVC研发的框架,操作简单.节省代码,适用于所有web项目.适合中小型项目开发.10分钟写出一个页面的增删改查.目前所在 ...

  7. 不想用Spring全家桶?试试这个国产JFinal框架

    前言 逃离北上广从广州回老家南宁,入职这家公司用的技术是JFinal,借此机会得以学习这个国产的MVC框架,经过一段时间的学习,基于之前的经验搭建一个通用项目jfinal-demo jfinal-de ...

  8. 使用JFinal框架中Validator

    Validator是JFinal框架中的校验组件,在Validator类中提供了我们经常使用的校验方法,而Validator本身实现了Interceptor接口,所以Validator也相当于一个拦截 ...

  9. Python框架之Django学习

    当前标签: Django   Python框架之Django学习笔记(十四) 尛鱼 2014-10-12 13:55 阅读:173 评论:0     Python框架之Django学习笔记(十三) 尛 ...

随机推荐

  1. 微信H5支付.NET版本备忘

    微信H5支付.NET版本备忘

  2. 百度Android在线语音识别SDK用法

    百度Android语音识别SDK分在线与离线两种,这篇文章介绍在线SDK的用法. 在线SDK是以JAR包和动态链接库形式公布和使用,能够从百度开放云平台站点中下载SDK及使用说明文档. title=d ...

  3. 使用自定义验证组件库扩展 Windows 窗体

    使用自定义验证组件库扩展 Windows 窗体             1(共 1)对本文的评价是有帮助 - 评价此主题                          发布日期 : 8/24/20 ...

  4. python 连接sql server数据库的示例代码

    首先,到http://pymssql.sourceforge.net/下载pymssql模块,必须安装这个模块才可以用python连接mysql 以下是sql server的操作代码,需要注意字符集 ...

  5. Ribbon的配置

    1.注解配置 @RibbonClient(name = "xxx",configuration = XxxRibbonConfig.class) public class XxxR ...

  6. System.Data.SqlClient.SqlError:无法打开备份设备'D:\..\abc.bak'

    在SQL Server中备份数据库时遇到备份对于服务器“服务器名”失败. (Microsoft.SqlServer.Smo)其他信息:System.Data.SqlClient.SqlError:无法 ...

  7. python 高阶函数 map lambda filter等

    map 描述 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表. ...

  8. ubuntu16.04中文乱码解决方案

    把环境变量设置为中文 </pre><pre name="code" class="plain">sudo vi /etc/default ...

  9. linux 基本配置tab键和显示行号 和中文输入法

    一.仅设置当前用户的Tab键宽度 输入命令:vim ~/.vimrc 然后:set tabstop=4   //我这里将Tab键的宽度设置为4 保存:ctrl+z+z(或:wq!) OK! 二.设置所 ...

  10. Python的内存管理 小理解

    请看下面的一段代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 origin = {'a':100,'b':[1,2,34,5]} obj_copy ={}; ...