jfinal的配置文件实例详解(二)

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

tomcat+mysql 所需要的jar

jfinal的配置文件实例详解(二)_第1张图片

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 !


你可能感兴趣的:(jfinal的配置文件实例详解(二))