zoukankan      html  css  js  c++  java
  • jfinal的配置文件详解

    1、去官网下载最新的jar包(我这是JFinal-lib-2.2)

    tomcat+mysql 所需要的jar

    2、配置web.xml

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

    此处遇到的问题:由于第一次使用/test路径部署,后来改成/ROOT,没有删除原来的部署包,web.xml中的config路径修改后,总是不加载,debug 这个JFinalFilter类,不能部署两个jfinal,否则配置文件会混淆的

    注意:configClass 这个是不能随便修改的 

    3、配置TestConfig.java 

    public class TestConfig extends JFinalConfig {
        /**
         * 配置常量
         */
        @Override
        public void configConstant(Constants me) {
            PropKit.use("jdbc.txt"); // 数据库配置文件,发觉不管放到哪里都可以,没有路径
            me.setViewType(ViewType.JSP);// 默认是freemark
            me.setDevMode(PropKit.getBoolean("devMode", false));
        }
    
        /**
         * 配置处理器
         */
        @Override
        public void configHandler(Handlers me) {
            // TODO Auto-generated method stub
        }
    
        /**
         * 配置拦截器
         */
        @Override
        public void configInterceptor(Interceptors me) {
            // TODO Auto-generated method stub
        }
    
        /**
         * 配置插件
         */
        @Override
        public void configPlugin(Plugins me) {
            // 配置C3p0数据库连接池插件,注意需要两个jar,mchange-commons.jar,c3p.jar
            C3p0Plugin C3p0Plugin = new C3p0Plugin(PropKit.get("jdbcUrl"), PropKit
                    .get("username"), PropKit.get("password").trim());
            me.add(C3p0Plugin);
    
            // 配置ActiveRecord插件
            ActiveRecordPlugin arp = new ActiveRecordPlugin(C3p0Plugin);
            me.add(arp);
    
            // 方式一: 直接配置数据表映射
            arp.addMapping("user", "id", User.class);
    
            // 方式二:配置数据表映射写到一个文件中
            // DbMappingKit.mapping(arp);
        }
    
        /**
         * 配置路由
         */
        @Override
        public void configRoute(Routes me) {
            // 方式一:直接配置文件
            // http://localhost/user 将 访 问 UserController.index() 方 法
            me.add("/user", UserController.class, "/WEB-INF/page/user"); // 第三个参数为该Controller的视图存放路径
            // http://localhost/user/addUser 将 访 问 UserController.addUser() 方 法
             me.add("/user/addUser", UserController.class); // 第三个参数省略时默认与第一个参数值相同
             me.add("/user/saveUser", UserController.class);
            
             // 方式二:使用中间路由
             //me.add(new FrontRoutes()); // 前端路由
            // me.add(new AdminRoutes()); // 后端路由
        }

    3.1、数据库映射的第二种方式:映射表的文件DbMappingKit 

    public class DbMappingKit {
        public static void mapping(ActiveRecordPlugin arp) {
            arp.addMapping("user", "id", User.class);
        }
    }

    同意将映射文件放到一个文件中,方便管理

    3.2、数据库使用druidPlugin 插件

    public void configPlugin(Plugins me) {
            //shiro插件
    
            // 配置C3p0数据库连接池插件
            DruidPlugin druidPlugin = new DruidPlugin(getProperty("jdbcUrl"), getProperty("user"), getProperty("password"));
            druidPlugin.setFilters("stat,log4j");
            
            me.add(druidPlugin); 
            me.add(new EhCachePlugin());
            // 配置ActiveRecord插件
            AutoTableBindPlugin arp = new AutoTableBindPlugin(druidPlugin,TableNameStyle.LOWER);//table是实体的小写
            me.add(arp);
            arp.setShowSql(true);
            SqlReporter.setLogger(true);    
            
    //        ShiroPlugin sh=new ShiroPlugin();
    //        me.add(sh);
        }

    3.3、路由的第二种配置方式,中间路由

    public class AdminRoutes extends Routes {
        @Override
        public void config() {
            add("/user/addUser", UserController.class);
            add("/user/saveUser", UserController.class);
        }
    }

    4.UserController.java

    public class UserController extends Controller {
        public void index() {        
            renderTest("hello word !");
        }    
    }

    此时访问/user,即可看到页面上打印:hello word !

  • 相关阅读:
    telnet命令找不到问题
    hive向表中执行insert语句报错问题
    SharePoint 2010 日期控件(DateTimeControl)的用法
    SharePoint 2010 启用InfoPath支持
    Sharepoint 2010 根据用户权限隐藏Ribbon菜单
    Sharepoint 2010 使用feature部署文件
    SharePoint 2010 查询不以某个字符开头的数据[How to Create a SharePoint “Does Not Begin With” Filtered List View]计算栏的妙用
    SharePoint 2010 栏计算经验收集
    SharePoint 2010 更加列表栏的值显示不同的背景颜色
    SharePoint 2010 使用SP.UI.ModalDialog.showModalDialog(options)对话框框架传值
  • 原文地址:https://www.cnblogs.com/estellez/p/5600600.html
Copyright © 2011-2022 走看看