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 !

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM