• jfinal框架的初级学习


    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(){
            
        }
  • 相关阅读:
    今天是不是要得瑟那么一下下啦
    今天小小的总结一下最近的小程序中的问题
    敏感词过滤和XML的创建
    【腾讯优测干货分享】安卓专项测试之GPU测试探索
    【腾讯Bugly干货分享】WebVR如此近-three.js的WebVR示例解析
    【腾讯Bugly干货分享】Android动态布局入门及NinePatchChunk解密
    【腾讯Bugly干货分享】基于RxJava的一种MVP实现
    【腾讯Bugly干货分享】动态链接库加载原理及HotFix方案介绍
    【腾讯Bugly干货分享】微信iOS SQLite源码优化实践
    【腾讯Bugly干货分享】移动客户端中高效使用SQLite
  • 原文地址:https://www.cnblogs.com/hfblogs/p/6047895.html
Copyright © 2020-2023  润新知