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 !